【问题标题】:How do I find the owner of a given database?如何找到给定数据库的所有者?
【发布时间】:2009-04-30 20:31:45
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net sql


    【解决方案1】:

    不幸的是,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);
    

    马克

    【讨论】:

    • 您是否碰巧有一个针对 Oracle、MySQL 等的查询?
    • 不,抱歉,我不熟悉那些数据库系统。不幸的是,似乎并没有一个通用的、与数据库无关的目录视图 (INFORMATION_SCHEMA) 来显示所有者。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-10-12
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 2018-09-26
      • 1970-01-01
      相关资源
      最近更新 更多