Freigeben über


sys.database_role_members (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Gibt eine Zeile für jedes Mitglied jeder Datenbankrolle zurück. Datenbankbenutzer, Anwendungsrollen und andere Datenbankrollen können Mitglieder einer Datenbankrolle sein. Verwenden Sie zum Hinzufügen von Mitgliedern zu einer Rolle die ALTER ROLE-Anweisung mit der ADD MEMBER Option. Mit sys.database_principals verbinden, um die Namen der principal_id Werte zurückzugeben.

Spaltenname Datentyp Description
role_principal_id int Datenbankprinzipal-ID der Rolle.
member_principal_id int Datenbankprinzipal-ID des Mitglieds.

Permissions

Jeder Benutzer kann die eigenen Rollenmitgliedschaften anzeigen. Zum Anzeigen anderer Rollenmitgliedschaften ist die Mitgliedschaft in der db_securityadmin festen Datenbankrolle oder VIEW DEFINITION in der Datenbank erforderlich.

Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Example

Die folgende Abfrage gibt die Member der Datenbankrollen zurück.

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;  

Siehe auch

Sicherheitskatalogsichten (Transact-SQL)
Prinzipale (Datenbank-Engine)
Katalogsichten (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)