Rôles de niveau serveur

S’applique à :SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

SQL Server fournit des rôles au niveau du serveur pour vous aider à gérer les autorisations sur un serveur. Ces rôles sont des principaux de sécurité qui regroupent d'autres principaux. Les autorisations des rôles serveur ont une portée à l'échelle du serveur. (Lesrôles sont semblables aux groupes du système d’exploitation Microsoft Windows.)

SQL Server 2019 et les versions précédentes fournissaient neuf rôles serveur fixes. Les autorisations accordées aux rôles serveur fixes (sauf public) ne peuvent pas être modifiées. À compter de SQL Server 2012 (11.x), vous pouvez créer des rôles serveur définis par l’utilisateur et ajouter des autorisations au niveau du serveur aux rôles serveur définis par l’utilisateur. SQL Server 2022 (16.x) est fourni avec 10 rôles serveur supplémentaires conçus spécifiquement avec le principe des privilèges minimum à l’esprit, qui ont le préfixe ##MS_ et le suffixe ## pour les distinguer des autres principaux créés par l’utilisateur standard et des rôles serveur personnalisés. Ces nouveaux rôles contiennent des privilèges qui s’appliquent à l’étendue du serveur, mais peuvent également hériter de bases de données individuelles (à l’exception du rôle serveur ##MS_LoginManager## #).)

Comme SQL Server local, les autorisations de serveur sont organisées de façon hiérarchique. Les autorisations détenues par ces rôles au niveau du serveur peuvent se propager aux autorisations de base de données. Pour que les autorisations soient efficacement utiles au niveau de la base de données, une connexion doit être membre du rôle au niveau du serveur ##MS_DatabaseConnecter or## (à partir de SQL Server 2022 (16.x)), qui accorde l’autorisation CONNECT à toutes les bases de données ou dispose d’un compte d’utilisateur dans des bases de données individuelles. Cela s’applique également à la master base de données. Prenons l’exemple suivant : le rôle au niveau du serveur ##MS_ServerStateReader## contient l’état d’autorisation VIEW SERVER. Une connexion membre de ce rôle a un compte d’utilisateur dans les bases de données et masterWideWorldImporters. Cet utilisateur aura ensuite l’autorisation, VIEW DATABASE STATE dans ces deux bases de données par héritage.

Vous pouvez ajouter des principaux au niveau du serveur (connexions SQL Server, comptes Windows et groupes Windows) dans des rôles au niveau du serveur. Chaque membre d'un rôle serveur fixe peut ajouter des connexions à ce rôle. Les membres des rôles serveur définis par l’utilisateur ne peuvent pas ajouter d’autres principaux de serveur au rôle.

Rôles serveur fixes

Remarque

Ces rôles au niveau du serveur introduits avant SQL Server 2022 (16.x) ne sont pas disponibles dans Azure SQL Database ou Azure Synapse Analytics. Il existe des rôles de serveur Azure SQL Database spéciaux pour la gestion des autorisations qui sont équivalents aux rôles au niveau du serveur introduits dans SQL Server 2022 (16.x). Pour plus d’informations sur SQL Database, consultez Contrôle et octroi de l’accès à la base de données.

Le tableau ci-dessous répertorie les rôles serveur fixes et leurs fonctionnalités.

Rôles serveur fixes Description
sysadmin Les membres du rôle serveur fixe sysadmin peuvent effectuer n’importe quelle activité sur le serveur.
serveradmin Les membres du rôle serveur fixe serveradmin peuvent modifier les options de configuration à l’échelle du serveur et arrêter le serveur.
securityadmin Les membres du rôle serveur fixe securityadmin gèrent les connexions et leurs propriétés. Ils peuvent attribuer des autorisations GRANT, DENY et REVOKE au niveau du serveur. Ils peuvent également attribuer des autorisations GRANT, DENY et REVOKE au niveau de la base de données, s’ils ont accès à une base de données. En outre, ils peuvent réinitialiser les mots de passe pour les connexions SQL Server.

IMPORTANT : La possibilité d’accorder l’accès au Moteur de base de données et de configurer les autorisations utilisateur permet à l’administrateur de sécurité d’attribuer la plupart des autorisations de serveur. Le rôle securityadmin doit être traité comme équivalent au rôle sysadmin . En guise d’alternative, à partir de SQL Server 2022 (16.x), envisagez d’utiliser le nouveau rôle serveur fixe ##MS_LoginManager###.
processadmin Les membres du rôle serveur fixe processadmin peuvent mettre fin aux processus qui s’exécutent dans une instance de SQL Server.
setupadmin Les membres du rôle serveur fixe setupadmin peuvent ajouter et supprimer des serveurs liés à l’aide d’instructions Transact-SQL. (l’appartenance sysadmin est nécessaire lors de l’utilisation de Management Studio.)
bulkadmin Les membres du rôle serveur fixe bulkadmin peuvent exécuter l’instruction BULK INSERT.

Le rôle bulkadmin ou les autorisations ADMINISTRATION BULK OPERATIONS ne sont pas pris en charge pour SQL Server sur Linux. Seul le sysadmin peut effectuer des insertions en bloc pour SQL Server sur Linux.
diskadmin Le rôle serveur fixe diskadmin permet de gérer les fichiers disque.
dbcreator Les membres du rôle serveur fixe dbcreator peuvent créer, modifier, supprimer et restaurer n’importe quelle base de données.
public Chaque connexion SQL Server appartient au rôle serveur public . Lorsqu’un principal de serveur n’a pas été accordé ou refusé des autorisations spécifiques sur un objet sécurisable, l’utilisateur hérite des autorisations accordées au public sur cet objet. Vous ne devez affecter des autorisations publiques à un objet que lorsque vous souhaitez que ce dernier soit disponible pour tous les utilisateurs. Vous ne pouvez pas modifier l’appartenance au public.

Remarque :public est implémenté différemment des autres rôles. Les autorisations peuvent être accordées, refusées ou révoquées à partir des rôles serveur fixes public.

Important

La plupart des autorisations fournies par les rôles serveur suivants ne s’appliquent pas à Azure Synapse Analytics : processadmin, serveradmin, setupadmin et diskadmin.

Rôles de niveau serveur fixes introduits dans SQL Server 2022

Le tableau suivant présente des rôles de niveau serveur fixes supplémentaires introduits avec SQL Server 2022 (16.x) et leurs fonctionnalités.

Remarque

Ces autorisations au niveau du serveur ne sont pas disponibles pour Azure SQL Managed Instance ou Azure Synapse Analytics. ##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader### et ##MS_ServerSecurityStateReader## est introduit dans SQL Server 2022 (16.x) et n’est pas disponible dans Azure SQL Database.

Rôles serveur fixes Description
##MS_DatabaseConnector## Les membres du rôle serveur fixe ##MS_DatabaseConnector## peuvent se connecter à n’importe quelle base de données sans nécessiter de compte d’utilisateur dans la base de données à laquelle se connecter.

Pour refuser l’autorisation CONNECT pour une base de données spécifique, les utilisateurs peuvent créer un compte d’utilisateur correspondant pour cette connexion dans la base de données, puis REFUSER l’autorisation CONNECT à l’utilisateur de la base de données. Cette autorisation DENY va remplacer l’autorisation GRANT CONNECT provenant de ce rôle.
##MS_LoginManager## Les membres du rôle serveur fixe ##MS_LoginManager## peuvent créer, supprimer et modifier des connexions. Contrairement à l’ancien administrateur de sécurité du rôle serveur fixe, ce rôle n’autorise pas les membres à accorder des GRANT privilèges. Il s’agit d’un rôle plus limité qui permet de se conformer au principe du privilège minimum.
##MS_DatabaseManager## Les membres du rôle serveur fixe ##MS_DatabaseManager## peuvent créer et supprimer des bases de données. Un membre du rôle ##MS_DatabaseManager## qui crée une base de données en devient le propriétaire, ce qui lui permet de se connecter à cette base de données en tant qu’utilisateur dbo. L’utilisateur dbo a toutes les autorisations de base de données dans la base de données. Les membres du rôle ##MS_DatabaseManager## n’ont pas nécessairement l’autorisation d’accéder aux bases de données dont ils ne sont pas propriétaires. Ce rôle serveur a les mêmes privilèges que le rôle dbcreator dans SQL Server, mais nous vous recommandons d’utiliser ce nouveau rôle sur l’ancien, car ce rôle existe également dans Azure SQL Database et permet ainsi d’utiliser les mêmes scripts dans différents environnements.
##MS_ServerStateManager## Les membres du rôle serveur fixe ##MS_ServerStateManager## ont les mêmes autorisations que celles accordées au rôle ##MS_ServerStateReader## . En outre, il contient l’autorisation ALTER SERVER STATE , qui permet d’accéder à plusieurs opérations de gestion, telles que : DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF()
##MS_ServerStateReader## Les membres du rôle serveur fixe ##MS_ServerStateReader## peuvent lire toutes les vues de gestion dynamique (DMV) et les fonctions couvertes par VIEW SERVER STATE, et disposent respectivement de l’autorisation VIEW DATABASE STATE sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur.
##MS_ServerPerformanceStateReader## Les membres du rôle serveur fixe ##MS_ServerPerformanceStateReader## peuvent lire toutes les vues de gestion dynamique (DMV) et les fonctions couvertes par VIEW SERVER PERFORMANCE STATE, et disposent respectivement de l’autorisation VIEW DATABASE PERFORMANCE STATE sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur. Il s’agit d’un sous-ensemble de ce que le rôle serveur ##MS_ServerStateReader## a accès, ce qui permet de se conformer au principe du privilège minimum.
##MS_ServerSecurityStateReader## Les membres du rôle serveur fixe ##MS_ServerSecurityStateReader## peuvent lire toutes les vues de gestion dynamique (DMV) et fonctions couvertes par VIEW SERVER SECURITY STATE, et disposent respectivement de l’autorisation VIEW DATABASE SECURITY STATE sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur. Il s’agit d’un petit sous-ensemble de ce que le rôle serveur ##MS_ServerStateReader## a accès, ce qui permet de se conformer au principe du privilège minimum.
##MS_DefinitionReader## Les membres du rôle serveur fixe ##MS_DefinitionReader## peuvent lire toutes les vues de catalogue couvertes par VIEW ANY DEFINITION et disposent respectivement de l’autorisation VIEW DEFINITION sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur.
##MS_PerformanceDefinitionReader## Les membres du rôle serveur fixe ##MS_PerformanceDefinitionReader## peuvent lire toutes les vues de catalogue couvertes par VIEW ANY PERFORMANCE DEFINITION, et ont respectivement l’autorisation VIEW PERFORMANCE DEFINITION sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur. Il s’agit d’un sous-ensemble de ce que le rôle serveur ##MS_DefinitionReader## a accès.
##MS_SecurityDefinitionReader## Les membres du rôle serveur fixe ##MS_SecurityDefinitionReader## peuvent lire toutes les vues catalogue qui sont couvertes par VIEW ANY SECURITY DEFINITION, et ont respectivement l’autorisation VIEW SECURITY DEFINITION sur les bases de données où le membre de ce rôle a un compte d’utilisateur. Il s’agit d’un petit sous-ensemble de ce que le rôle serveur ##MS_DefinitionReader## a accès pour se conformer au principe du privilège minimum.

Autorisations des rôles serveur fixes

Certaines autorisations sont assignées à chaque rôle serveur fixe.

Autorisations des nouveaux rôles serveur fixes dans SQL Server 2022

Le tableau suivant présente les autorisations attribuées aux rôles de niveau serveur. Il affiche également les autorisations au niveau de la base de données héritées tant que l’utilisateur peut se connecter à des bases de données individuelles.

Rôles serveur fixes Autorisations au niveau du serveur Autorisations au niveau de la base de données
##MS_DatabaseConnector## CONNECT ANY DATABASE CONNECT
##MS_LoginManager## CREATE LOGIN
ALTER ANY LOGIN
S/O
##MS_DatabaseManager## CREATE ANY DATABASE
ALTER ANY DATABASE
ALTER
##MS_ServerStateManager## ALTER SERVER STATE
VIEW SERVER STATE
AFFICHER L’ÉTAT DES PERFORMANCES DU SERVEUR
AFFICHER L’ÉTAT DE SÉCURITÉ DU SERVEUR
VIEW DATABASE STATE
AFFICHER L’ÉTAT DES PERFORMANCES DE LA BASE DE DONNÉES
AFFICHER L’ÉTAT DE SÉCURITÉ DE LA BASE DE DONNÉES
##MS_ServerStateReader## VIEW SERVER STATE
AFFICHER L’ÉTAT DES PERFORMANCES DU SERVEUR
AFFICHER L’ÉTAT DE SÉCURITÉ DU SERVEUR
VIEW DATABASE STATE
AFFICHER L’ÉTAT DES PERFORMANCES DE LA BASE DE DONNÉES
AFFICHER L’ÉTAT DE SÉCURITÉ DE LA BASE DE DONNÉES
##MS_ServerPerformanceStateReader## AFFICHER L’ÉTAT DES PERFORMANCES DU SERVEUR AFFICHER L’ÉTAT DES PERFORMANCES DE LA BASE DE DONNÉES
##MS_ServerSecurityStateReader## AFFICHER L’ÉTAT DE SÉCURITÉ DU SERVEUR AFFICHER L’ÉTAT DE SÉCURITÉ DE LA BASE DE DONNÉES
##MS_DefinitionReader## VIEW ANY DATABASE
VIEW ANY DEFINITION
AFFICHER N’IMPORTE QUELLE DÉFINITION DE PERFORMANCES
VIEW ANY SECURITY DEFINITION
VIEW DEFINITION
AFFICHER LA DÉFINITION DES PERFORMANCES
VIEW SECURITY DEFINITION
##MS_PerformanceDefinitionReader## AFFICHER N’IMPORTE QUELLE DÉFINITION DE PERFORMANCES AFFICHER LA DÉFINITION DES PERFORMANCES
##MS_SecurityDefinitionReader## VIEW ANY SECURITY DEFINITION VIEW SECURITY DEFINITION

Autorisations des rôles serveur pour SQL Server 2019 et versions antérieures

Le graphique suivant montre les autorisations affectées aux rôles serveur hérités (SQL Server 2019 et versions antérieures).
Diagram showing fixed server role permissions.

Important

L'autorisation CONTROL SERVER ressemble, mais n'est pas identique au rôle serveur fixe sysadmin . Les autorisations n'impliquent pas les appartenances au rôle et les appartenances au role n'accordent pas d'autorisation. (par exemple, CONTROL SERVER n’implique pas l’appartenance au rôle serveur fixe sysadmin .) Toutefois, il est parfois possible d’emprunter l’identité entre les rôles et les autorisations équivalentes. La plupart des commandes DBCC et de nombreuses procédures système exigent l'appartenance au rôle serveur fixe sysadmin .

Autorisations au niveau du serveur

Seules des autorisations au niveau du serveur peuvent être ajoutées aux rôles serveur définis par l'utilisateur. Pour répertorier les autorisations au niveau du serveur, exécutez l'instruction suivante. Les autorisations au niveau du serveur sont :

SELECT * FROM sys.fn_builtin_permissions('SERVER') ORDER BY permission_name;

Pour plus d’informations sur les autorisations, consultez Autorisations (Moteur de base de données) et sys.fn_builtin_permissions (Transact-SQL).

Utilisation des rôles de niveau serveur

Le tableau ci-dessous explique les commandes, vues et fonctions permettant d'utiliser les rôles serveur.

Fonctionnalité Type Description
sp_helpsrvrole (Transact-SQL) Métadonnées Retourne la liste des rôles au niveau du serveur.
sp_helpsrvrolemember (Transact-SQL) Métadonnées Retourne des informations sur les membres d'un rôle au niveau du serveur.
sp_srvrolepermission (Transact-SQL) Métadonnées Affiche les autorisations d'un rôle au niveau du serveur.
IS_SRVROLEMEMBER (Transact-SQL) Métadonnées Indique si une connexion SQL Server est membre du rôle au niveau du serveur spécifié.
sys.server_role_members (Transact-SQL) Métadonnées Retourne une ligne pour chaque membre de chaque rôle serveur.
CREATE SERVER ROLE (Transact-SQL) Commande Crée un rôle serveur défini par l'utilisateur.
ALTER SERVER ROLE (Transact-SQL) Commande Modifie l'appartenance d'un rôle serveur ou modifie le nom d'un rôle serveur défini par l'utilisateur.
DROP SERVER ROLE (Transact-SQL) Commande Supprime un rôle de serveur défini par l'utilisateur.
sp_addsrvrolemember (Transact-SQL) Commande Ajoute une connexion en tant que membre d'un rôle serveur. Action déconseillée. Utilisez plutôt ALTER SERVER ROLE .
sp_dropsrvrolemember (Transact-SQL) Commande Supprime une connexion SQL Server ou un utilisateur ou un groupe Windows d’un rôle au niveau du serveur. Action déconseillée. Utilisez plutôt ALTER SERVER ROLE .

Rôles spécifiques à SQL Server activés par Azure Arc

Lorsque vous installez l’extension Azure pour SQL Server, l’installation :

  1. Crée un rôle de niveau serveur : SQLArcExtensionServerRole
  2. Crée un rôle de niveau base de données : SQLArcExtensionUserRole
  3. Ajoute le compte NT AUTHORITY\SYSTEM à chaque rôle
  4. Cartes NT AUTHORITY\SYSTEM au niveau de la base de données pour chaque base de données
  5. Octroie des autorisations minimales pour les fonctionnalités activées

En outre, l’extension Azure pour SQL Server révoque les autorisations pour ces rôles lorsqu’elles ne sont plus nécessaires pour des fonctionnalités spécifiques.

Si vous désinstallez l’extension Azure pour SQL Server, les rôles au niveau du serveur et de la base de données sont supprimés.

Pour obtenir des autorisations, passez en revue les autorisations.