代码之家  ›  专栏  ›  技术社区  ›  Esteban Araya

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

  •  0
  • Esteban Araya  · 技术社区  · 15 年前

    或者,如果您有另一个解决方案,它不与SQL的特定实现相耦合,我也希望听到这个。

    2 回复  |  直到 15 年前
        1
  •  3
  •   marc_s HarisH Sharma    15 年前

    很遗憾,DbConnection的GetSchema调用无法为您检索数据库所有者:-(

    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);
    

    马克

        2
  •  1
  •   Tom H    15 年前

    我不相信SQL-92标准规定目录(数据库)必须有所有者。因此,我不知道您是否可以获得一种非特定于实现的方法来实现这一点。