Condividi tramite


sys.database_role_members (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric Warehouse nel database SQL di Microsoft Fabric 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 l'utente è proprietario o per le quali dispone di 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)