sys.server_role_members (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed InstanceAnalytics 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)