sys.database_role_members (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

データベース ロールのメンバーごとに 1 行のデータを返します。 データベース ユーザー、アプリケーション ロール、およびその他のデータベース ロールは、データベース ロールのメンバーにすることができます。 ロールにメンバーを追加するには、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)