sys.database_role_members (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 中的 SQL 终结点 Microsoft Fabric 中的仓库 Microsoft Fabric SQL 数据库
为每个数据库角色的每个成员返回一行。 数据库用户、应用程序角色和其他数据库角色可以是数据库角色的成员。 若要将成员添加到角色,请将 ALTER ROLE 语句与选项一起使用 ADD MEMBER
。 与 sys.database_principals 联接以返回值的名称 principal_id
。
列名称 | 数据类型 | 描述 |
---|---|---|
role_principal_id | int | 角色的数据库主体 ID。 |
member_principal_id | int | 成员的数据库主体 ID。 |
权限
任何用户都可以查看自己的成员身份。 若要查看其他角色成员身份,需要在固定数据库角色或VIEW DEFINITION
数据库上具有成员身份db_securityadmin
。
目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 Metadata Visibility Configuration。
示例
以下查询返回数据库角色的成员。
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)