sys.database_role_members (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics はいParallel Data Warehouse

データベース ロールのメンバーごとに 1 行のデータを返します。 データベースユーザー、アプリケーションロール、およびその他のデータベースロールは、データベースロールのメンバーになることができます。 ロールにメンバーを追加するには、 ALTER role ステートメントをオプションと共に使用し ADD MEMBER ます。 値の名前を返すには、 sys.database_principals と結合し principal_id ます。

列名 データ型 説明
role_principal_id int ロールのデータベースプリンシパル ID。
member_principal_id int メンバーのデータベースプリンシパル ID。

権限

すべてのユーザーは自分のロールのメンバーシップを参照できます。 他のロールのメンバーシップを表示するに db_securityadmin は、固定データベースロールまたはデータベースのメンバーシップが必要です VIEW DEFINITION

カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。 詳細については、「 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-sql)
sys.server_role_members (Transact-SQL)