【发布时间】:2009-04-30 20:31:45
【问题描述】:
使用 .NET 的 DbConnection.GetSchema(),我如何找到给定数据库的所有者?
或者,如果您有另一个解决方案不与特定的 SQL 实现耦合,我也想听听。
【问题讨论】:
使用 .NET 的 DbConnection.GetSchema(),我如何找到给定数据库的所有者?
或者,如果您有另一个解决方案不与特定的 SQL 实现耦合,我也想听听。
【问题讨论】:
不幸的是,DbConnection 的 GetSchema 调用不会为您检索数据库所有者:-(
但是你可以在 SQL Server 上试试这个:
select
db.name, db.database_id, l.name, l.type
from
sys.databases db
inner join
sys.login_token l on db.owner_sid = l.sid
如果你想从 .NET 连接到 SQL Server,你可以使用 SMO(SQL 管理对象)并像这样找到你的所有者:
Server server = new Server("Your Server");
Database db = server.Databases["Your Database"];
Console.WriteLine("Database owner is: " + db.Owner);
马克
【讨论】:
我不相信 SQL-92 标准规定目录(数据库)必须有所有者。因此,我不知道您是否可以获得一种非特定于实现的方式来执行此操作。
【讨论】: