sys.database_role_members (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft Fabric

Restituisce una riga per ogni membro di ogni ruolo del database. Gli utenti del database, i ruoli applicazione e altri ruoli del database possono essere membri di un ruolo del database. Per aggiungere membri a un ruolo, usare l'istruzione ALTER ROLE con l'opzione ADD MEMBER . Creare un join con sys.database_principals per restituire i nomi dei principal_id valori.

Nome colonna Tipo di dati Descrizione
role_principal_id int ID dell'entità di database del ruolo.
member_principal_id int ID dell'entità di database del membro.

Autorizzazioni

Qualsiasi utente può visualizzare la propria appartenenza al ruolo. Per visualizzare altre appartenenze ai ruoli è necessaria l'appartenenza al ruolo predefinito del db_securityadmin database o VIEW DEFINITION al database.

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui un utente è proprietario o a cui l'utente ha concesso alcune autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempio

La query seguente restituisce i membri dei ruoli del database.

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;  

Vedi anche

Viste del catalogo della sicurezza (Transact-SQL)
Entità di sicurezza (motore di database)
Viste del catalogo (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)