Rôles de niveau serveur
S’applique à :SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
SQL Server fournit des rôles au niveau du serveur pour vous aider à gérer les autorisations sur les serveurs. 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 (15.x) et les versions précédentes fournissaient neuf rôles serveur fixes. Les autorisations accordées aux rôles serveur fixes (à l’exception de public) ne peuvent pas être changées. Depuis SQL Server 2012 (11.x), il est possible de créer des rôles serveur définis par l'utilisateur et de leur ajouter des autorisations au niveau du serveur.
SQL Server 2022 (16.x) est fourni avec 10 rôles serveur supplémentaires conçus spécifiquement en tenant compte du principe de privilège minimum, et qui ont le préfixe ##MS_
et le suffixe ##
pour les distinguer des autres principaux créés par les utilisateurs et des rôles serveur personnalisés. Ces nouveaux rôles contiennent des privilèges qui s’appliquent au niveau du serveur, mais peuvent également s'appliquer aux 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_DatabaseConnector##
(à partir de SQL Server 2022 (16.x)), qui accorde l’autorisation CONNECT
à toutes les bases de données, ou avoir un compte d’utilisateur dans des bases de données individuelles. Ceci s'applique également à la base de données master
.
Prenons l’exemple suivant : le rôle au niveau du serveur ##MS_ServerStateReader##
contient l’autorisation VIEW SERVER STATE
. Un identifiant qui est membre de ce rôle dispose d'un compte utilisateur dans les bases de données master
et WideWorldImporters
. Cet utilisateur dispose également de 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 et groupes Windows) à des rôles au niveau du serveur. Chaque membre d'un rôle serveur fixe peut ajouter des connexions à ce rôle. Les membres de rôles serveur définis par l'utilisateur ne peuvent pas ajouter d'autres principaux de serveur à ces rôles.
Rôles serveur fixes
Remarque
Ces rôles au niveau du serveur introduits avant SQL Server 2022 (16.x) et ne sont pas disponibles dans Azure SQL Database ou Azure Synapse Analytics. Il existe des rôles de serveur Azure SQL Database pour la gestion des autorisations spéciaux 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. Important : les autorisations ne peuvent pas être refusées aux membres de ce rôle. |
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.
securityadmin peut également attribuer des autorisations GRANT , DENY et REVOKE au niveau de la base de données, s’il a accès à une base de données. En outre, securityadmin peuvt réinitialiser les mots de passe pour les comptes de connexion SQL Server.IMPORTANT: La possibilité d’octroyer l’accès au moteur de base de données et de configurer des autorisations utilisateur permet à l’administrateur de sécurité d’affecter la plupart des autorisations du 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 en cours d’exécution 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. ( une adhésion 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 .Les autorisations ADMINISTER BULK OPERATIONS et le rôle bulkadmin 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’est pas accordé ou refusé des autorisations spécifiques sur un objet sécurisable, l’utilisateur hérite des autorisations accordées à publique sur cet objet. Attribuez des autorisations publiques à uniquement sur un objet lorsque vous souhaitez que cet objet soit disponible pour tous les utilisateurs. Vous ne pouvez pas modifier l'adhésion dans public. Remarque : publique est implémentée différemment des autres rôles, et les autorisations peuvent être accordées, refusées ou révoquées des rôles de serveurs fixes publics. |
Important
La plupart des autorisations fournies par les rôles serveur suivants ne s’appliquent pas à Azure Synapse Analytics - processadmin, serveradmin, setupadminet diskadmin.
Pour plus d’informations, consultez Rôles de niveau serveur fixe introduits dans SQL Server 2022.
Le tableau suivant présente les rôles de niveau serveur fixes introduits dans 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 pour se connecter.Pour refuser l’autorisation CONNECT à 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 DENY l’autorisation CONNECT à l’utilisateur de base de données. Cette autorisation DENY remplace 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 rôle de serveur fixe securityadmin, ce rôle ne permet pas aux membres d'obtenir des privilèges GRANT . Il s’agit d’un rôle plus limité qui permet de se conformer au principe du moindre privilège. |
##MS_DatabaseManager## |
Les membres du rôle serveur fixe ##MS_DatabaseManager## peuvent créer et supprimer des bases de données. Membre du rôle ##MS_DatabaseManager## qui crée une base de données, devient le propriétaire de cette base de données, ce qui permet à cet utilisateur 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 qu’ils ne possèdent pas. Ce rôle serveur dispose des 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 le rôle ##MS_ServerStateReader## . En outre, il contient l’autorisation de 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 ont respectivement VIEW DATABASE STATE autorisation 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 ont respectivement VIEW DATABASE PERFORMANCE STATE autorisation sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur. 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 les fonctions couvertes par VIEW SERVER SECURITY STATE , et ont respectivement VIEW DATABASE SECURITY STATE autorisation sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur. 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 ont respectivement VIEW DEFINITION autorisation 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 VIEW PERFORMANCE DEFINITION autorisation sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur. 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 de catalogue couvertes par VIEW ANY SECURITY DEFINITION , et ont respectivement VIEW SECURITY DEFINITION autorisation sur n’importe quelle base de données sur laquelle le membre de ce rôle a un compte d’utilisateur. Petit sous-ensemble de ce que le rôle serveur ##MS_DefinitionReader## a accès, ce qui permet de 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 montre aussi les autorisations de niveau base de données qui sont héritées dès lors que l’utilisateur peut se connecter à des bases de données individuelles.
Rôles serveur fixes | Autorisations au niveau du serveur | Autorisations de niveau base de données |
---|---|---|
##MS_DatabaseConnector## |
- CONNECT ANY DATABASE |
- CONNECT |
##MS_LoginManager## |
- CREATE LOGIN - ALTER ANY LOGIN |
N/A |
##MS_DatabaseManager## |
- CREATE ANY DATABASE - ALTER ANY DATABASE |
- ALTER |
##MS_ServerStateManager## |
- ALTER SERVER STATE - VIEW SERVER STATE - VIEW SERVER PERFORMANCE STATE - VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE - VIEW DATABASE PERFORMANCE STATE - VIEW DATABASE SECURITY STATE |
##MS_ServerStateReader## |
- VIEW SERVER STATE - VIEW SERVER PERFORMANCE STATE - VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE - VIEW DATABASE PERFORMANCE STATE - VIEW DATABASE SECURITY STATE |
##MS_ServerPerformanceStateReader## |
- VIEW SERVER PERFORMANCE STATE |
- VIEW DATABASE PERFORMANCE STATE |
##MS_ServerSecurityStateReader## |
- VIEW SERVER SECURITY STATE |
- VIEW DATABASE SECURITY STATE |
##MS_DefinitionReader## |
- VIEW ANY DATABASE - VIEW ANY DEFINITION - VIEW ANY PERFORMANCE DEFINITION - VIEW ANY SECURITY DEFINITION |
- VIEW DEFINITION - VIEW PERFORMANCE DEFINITION - VIEW SECURITY DEFINITION |
##MS_PerformanceDefinitionReader## |
- VIEW ANY PERFORMANCE DEFINITION |
- VIEW PERFORMANCE DEFINITION |
##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 (15.x) et versions antérieures).
L’autorisation CONTROL SERVER
est similaire ; mais pas identique au rôle de serveur fixe administrateur système. Les utilisateurs principaux avec l’autorisation CONTROL SERVER
peuvent se voir refuser certaines autorisations spécifiques. Du point de vue de la sécurité, considérez les principaux avec CONTROL SERVER
comme équivalents aux membres ayant des droits sysadmin, en raison des diverses manières possibles d'élever les droits de CONTROL SERVER
à des droits complets d'administrateur système. Plusieurs commandes DBCC
et de nombreuses procédures système nécessitent 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.
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 | Métadonnées | Retourne la liste des rôles au niveau du serveur. |
sp_helpsrvrolemember | Métadonnées | Retourne des informations sur les membres d'un rôle au niveau du serveur. |
sp_srvrolepermission | Métadonnées | Affiche les autorisations d'un rôle au niveau du serveur. |
IS_SRVROLEMEMBER | Métadonnées | Indique si une connexion SQL Server est membre du rôle au niveau du serveur spécifié. |
sys.server_role_members | Métadonnées | Retourne une ligne pour chaque membre de chaque rôle serveur. |
CREATE SERVER ROLE | Commande | Crée un rôle serveur défini par l'utilisateur. |
MODIFIER LE RÔLE DU SERVEUR | 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 | Commande | Supprime un rôle de serveur défini par l'utilisateur. |
sp_addsrvrolemember | Commande | Ajoute une connexion en tant que membre d'un rôle serveur. Déconseillé. Utilisez plutôt ALTER SERVER ROLE . |
sp_dropsrvrolemember | Commande | Supprime un login SQL Server ou un utilisateur ou groupe Windows d'un rôle au niveau du serveur. Déconseillé. 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 :
Crée un rôle au niveau du serveur : SQLArcExtensionServerRole
Crée un rôle au niveau de la base de données : SQLArcExtensionUserRole
Ajoute le compte NT AUTHORITY\SYSTEM* à chaque rôle
Mappe NT AUTHORITY\SYSTEM* au niveau de la base de données pour chaque base de données
Accorde des autorisations minimales pour les fonctions activées
*Vous pouvez également configurer SQL Server avec Azure Arc pour qu’il s’exécute en mode privilège minimum (disponible en préversion). Pour plus de détails, consultez Utiliser SQL Server avec Azure Arc avec des privilèges minimum (préversion).
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.
SqlServerExtensionPermissionProvider
est une tâche Windows. Elle accorde ou révoque des privilèges dans SQL Server lorsqu’elle détecte :
- Une nouvelle instance SQL Server installée sur l’hôte
- L’instance SQL Server est désinstallée de l’hôte
- Une fonctionnalité au niveau de l’instance est activée ou désactivée, ou les paramètres sont mis à jour
- Le service d’extension est redémarré
Remarque
Avant la version de juillet 2024, SqlServerExtensionPermissionProvider
est une tâche planifiée. Elle s’exécute toutes les heures.
Pour plus d’informations, consultez Configurer les comptes de service Windows et les autorisations de l’extension Azure pour SQL Server.
Si vous désinstallez l’extension Azure pour SQL Server, les rôles au niveau du serveur et de la base de données seront supprimés.
Pour les autorisations, vérifiez les autorisations.
Contenu connexe
- rôles au niveau de la base de données
- Affichages catalogue liées à la sécurité (Transact-SQL)
- Fonctions de sécurité (Transact-SQL)
- Sécurisation de SQL Server
- GRANT – octroi d'autorisations de principal de serveur (Transact-SQL)
- REVOKE – révocation d'autorisations de principal de serveur (Transact-SQL)
- DENY – refus d'autorisations du principal de serveur (Transact-SQL)
- Créer un rôle serveur
- Rôles serveur Azure SQL Database pour la gestion des autorisations