【问题标题】:How can I query the list of database roles in a SQL Server 2000 database?如何查询 SQL Server 2000 数据库中的数据库角色列表?
【发布时间】:2012-12-18 01:31:34
【问题描述】:

在 Sql Server 2000 中,是否可以通过 SQL 查询返回给定数据库中存在的数据库角色的完整列表?

我知道可以通过扩展 SQL Server Management Studio 中的安全、角色和数据库角色节点来查看这些角色,但我想通过我可以以编程方式解析的查询来获取它们。

为了澄清,我不是在寻找具有角色的用户列表,而只是角色本身的列表。

【问题讨论】:

    标签: sql sql-server-2000 sql-server-administration


    【解决方案1】:

    SQL Server 2000 中的每个数据库都有一个sysusers system table

    大概是这样的

    Use <MyDatabase>
    
    Select 
      [name]
    From
      sysusers
    Where
      issqlrole = 1
    

    会成功的

    【讨论】:

    • 我没有意识到 sysusers 包括角色和用户。我检查了您的代码,它确实返回了正确的数据。非常感谢!
    • 放置它的地方多么有趣。
    • NB sys.sysusers 已弃用。从 2008 年开始应该使用sys.database_principles
    【解决方案2】:

    使用我们的 SQL Server 2016 这对我有用

    Use Sandbox
    Select
      name, principal_id
    From
      sys.database_principals 
    Where
      type = 'R' and principal < 16384
    

    其中 Sandbox 是我的数据库的名称。 (我在 ESRI ArcGIS Enterprise 10.6 中使用 SQL。)

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多