适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric 中的 SQL 分析终结点
Microsoft Fabric 中的仓库
Microsoft Fabric 中的 SQL 数据库
为每个数据库角色的每个成员返回一行。 数据库用户、应用程序角色和其他数据库角色可以是数据库角色的成员。 要向角色添加成员,请使用带有选项ADD MEMBER的ALTER ROLE语句。 与 sys.database_principals 联接以返回值的名称 principal_id 。
| 列名称 | 数据类型 | Description |
|---|---|---|
| role_principal_id | int | 角色的数据库主体 ID。 |
| member_principal_id | int | 成员的数据库主体 ID。 |
Permissions
任何用户都可以查看自己的成员身份。 若要查看其他角色成员身份,需要在固定数据库角色或db_securityadmin数据库上具有成员身份VIEW DEFINITION。
目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 Metadata Visibility Configuration。
Example
以下查询返回数据库角色的成员。
SELECT DP1.name AS DatabaseRoleName,
isnull (DP2.name, 'No members') AS DatabaseUserName
FROM sys.database_role_members AS DRM
RIGHT OUTER JOIN sys.database_principals AS DP1
ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN sys.database_principals AS DP2
ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.type = 'R'
ORDER BY DP1.name;
另请参阅
安全性目录视图 (Transact-SQL)
主体(数据库引擎)
目录视图 (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members(Transact-SQL)