Condividi tramite


sys.database_role_members (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft FabricDatabase SQL in Anteprima di 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.

Column name Data type Description
role_principal_id int ID dell'entità di database del ruolo.
member_principal_id int ID dell'entità di database del membro.

Permissions

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.

Example

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;  

See Also

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)