sys.server_role_members (Transact-SQL)
S’applique à : SQL Server Azure SQL Managed Instance Analytics Platform System (PDW)
Renvoie une ligne pour chaque membre de chaque rôle serveur fixe et défini par l'utilisateur.
Nom de la colonne | Type de données | Description |
---|---|---|
role_principal_id | int | ID du principal de serveur du rôle. |
member_principal_id | int | ID du principal de serveur du membre. |
Pour ajouter ou supprimer l’appartenance au rôle serveur, utilisez l’instruction ALTER SERVER ROLE (Transact-SQL).
autorisations
Les connexions peuvent afficher leur propre appartenance au rôle serveur et afficher les principal_id des membres des rôles serveur fixes. Pour afficher l’appartenance à tous les rôles serveur, vous devez disposer de l’autorisation VIEW ANY DEFINITION ou de l’appartenance au rôle serveur fixe securityadmin .
Les connexions peuvent également afficher les appartenances aux rôles des rôles qu’ils possèdent.
Dans Azure SQL Database, les membres du rôle serveur ##MS_DefinitionReader## peuvent interroger toutes les vues de catalogue.
Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemples
Les exemples de cette section montrent comment utiliser des rôles de niveau serveur dans Azure SQL Database.
A. Liste de retour des membres du rôle serveur
L’exemple suivant retourne les noms et ID des rôles et de leurs membres.
SELECT roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
, server_role_members.member_principal_id AS MemberPrincipalID
, members.name AS MemberPrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members
ON server_role_members.member_principal_id = members.principal_id
;
Remarque
Dans Azure SQL Database, les connexions SQL ne sont pas conservées dans l’affichage sys.server_principals
catalogue. Par conséquent, pour récupérer l’appartenance au rôle au niveau du serveur dans Azure SQL Database, l’affichage sys.sql_logins
catalogue doit être joint.
B. Azure SQL Database : lister tous les principaux (authentification SQL) qui sont membres d’un rôle au niveau du serveur
L’instruction suivante retourne tous les membres d’un rôle serveur fixe à l’aide des vues catalogue sys.server_role_members
et sys.sql_logins
. Cette instruction doit être exécutée dans la base de données MASTER virtuelle.
SELECT
sql_logins.principal_id AS MemberPrincipalID
, sql_logins.name AS MemberPrincipalName
, roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.sql_logins AS sql_logins
ON server_role_members.member_principal_id = sql_logins.principal_id
;
GO
Voir aussi
Affichages catalogue (Transact-SQL)
Affichages catalogue liées à la sécurité (Transact-SQL)
Rôles de niveau serveur
Principaux (moteur de base de données)