如何找到给定数据库的所有者?

时间:2009-04-30 20:31:45

标签: c# .net sql

使用.NET的DbConnection.GetSchema(),如何找到给定数据库的所有者?

或者,如果你有另一个解决方案没有与SQL的特定实例相结合,我也想听听。

2 个答案:

答案 0 :(得分:3)

遗憾的是,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);

马克

答案 1 :(得分:1)

我不相信SQL-92标准规定目录(数据库)必须拥有所有者。因此,我不知道您可以采用非特定于实现的方式来执行此操作。