sys.database_role_members (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Retourne une ligne pour chaque membre de chaque rôle de base de données. Les utilisateurs de base de données, les rôles d’application et d’autres rôles de base de données peuvent être membres d’un rôle de base de données. Pour ajouter des membres à un rôle, utilisez l’instruction ALTER ROLE avec l’option ADD MEMBER . Joignez-vous à sys.database_principals pour retourner les noms des principal_id valeurs.

Nom de la colonne Type de données Description
role_principal_id int ID du principal de base de données du rôle.
member_principal_id int ID du principal de base de données du membre.

Autorisations

Tout utilisateur peut consulter sa propre appartenance au rôle. Pour afficher d’autres appartenances aux rôles, vous devez être membre du db_securityadmin rôle de base de données fixe ou VIEW DEFINITION de la base de données.

La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu’un utilisateur possède ou sur lesquels l’utilisateur a reçu une autorisation. Pour plus d'informations, consultez Metadata Visibility Configuration.

Exemple

La requête suivante retourne les membres des rôles de base de données.

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;  

Voir aussi

Affichages catalogue liées à la sécurité (Transact-SQL)
Principaux (moteur de base de données)
Affichages catalogue (Transact-SQL)
ALTER ROLE (Transact-SQLL)
sys.server_role_members (Transact-SQL)