Dela via


sys.database_role_members (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Returnerar en rad för varje medlem i varje databasroll. Databasanvändare, programroller och andra databasroller kan vara medlemmar i en databasroll. Om du vill lägga till medlemmar i en roll använder du ALTER ROLE-instruktionen med alternativet ADD MEMBER . Anslut med sys.database_principals för att returnera namnen på principal_id värdena.

Column name Data type Description
role_principal_id int Rollens huvudnamns-ID för databasen.
member_principal_id int Medlemmens huvudnamns-ID för databasen.

Permissions

Alla användare kan visa sitt eget rollmedlemskap. För att visa andra rollmedlemskap krävs medlemskap i den db_securityadmin fasta databasrollen eller VIEW DEFINITION i databasen.

Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.

Example

Följande fråga returnerar medlemmarna i databasrollerna.

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;  

See Also

säkerhetskatalogvyer (Transact-SQL)
huvudnamn (databasmotor)
katalogvyer (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)