sys.database_role_members (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric のSQL 分析エンドポイント
Microsoft Fabric のウェアハウス
データベース ロールのメンバーごとに 1 行のデータを返します。 データベース ユーザー、アプリケーション ロール、およびその他のデータベース ロールは、データベース ロールのメンバーにすることができます。 ロールにメンバーを追加するには、ADD MEMBER
オプションを指定して ALTER ROLE ステートメントを使用します。 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)