如何查询SQL Server 2000数据库中的数据库角色列表?

War*_*Bob 10 sql sql-server-2000 sql-server-administration

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

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

有问题的节点的屏幕截图

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

Lau*_*nce 19

SQL Server 2000中的每个数据库都有一个sysusers系统表

可能是类似的东西

Use <MyDatabase>

Select 
  [name]
From
  sysusers
Where
  issqlrole = 1
Run Code Online (Sandbox Code Playgroud)

会做的

  • ***不建议使用`sys.sysusers`。从2008年起应该使用[`sys.database_principles`](https://msdn.microsoft.com/zh-CN/library/ms187328.aspx)。 (3认同)
  • ^ 应该是“sys.database_principals”? (2认同)

小智 12

对于我们的 SQL Server 2016,这对我有用

Use Sandbox
Select
  name, principal_id
From
  sys.database_principals 
Where
  type = 'R' and principal_id < 16384
Run Code Online (Sandbox Code Playgroud)

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