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 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 livré avec 10 rôles de serveur supplémentaires qui ont été conçus spécifiquement en tenant compte du principe du moindre privilège. Ces rôles ont un préfixe ##MS_
et un suffixe ##
qui les distinguent des autres principes créés par l’utilisateur et des rôles de 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 effectives au niveau de la base de données, un compte de 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 les bases de données individuelles. Ceci s'applique également à la base de données master
.
Prenons l'exemple suivant : Le rôle de niveau serveur ##MS_ServerStateReader### détient l'autorisation VIEW SERVER STATE. Un login membre de ce rôle a un compte d’utilisateur dans les bases de données master
et WideWorldImporters
. 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 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) 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. |
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 ne s’est pas vu accorder ou refuser des autorisations spécifiques sur un objet sécurisable, l’utilisateur hérite des autorisations accordées au rôle 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 rôle 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.
Pour plus d’informations, consultez Rôles de niveau serveur fixe 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
Les autorisations au niveau du serveur ne sont disponibles ni pour SQL Database ni pour Azure Synapse Analytics. ##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader### et ##MS_ServerSecurityStateReader## sont introduits dans SQL Server 2022 (16.x) et ne sont pas disponibles 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 remplace l’autorisation GRANT CONNECT provenant de ce rôle. |
##MS_LoginManager## | Les membres du rôle serveur fixe ##MS_LoginManager## peuvent créer, modifier et supprimer 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. 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 plutôt que l’ancien, car ce rôle existe également dans Azure SQL Database et facilite ainsi l’utilisation des 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, ce rôle contient l’autorisation ALTER SERVER STATE, qui permet d’accéder à plusieurs opérations de gestion, telles que DBCC FREEPROCCACHE , DBCC FREESYSTEMCACHE ('ALL') et DBCC SQLPERF() . |
##MS_ServerStateReader## | Les membres du rôle serveur fixe ##MS_ServerStateReader## peuvent lire toutes les vues catalogue qui sont couvertes par VIEW SERVER STATE, et qui ont des autorisations respectives VIEW DATABASE STATE sur toute base de données sur laquelle le membre de ce rôle détient un compte d’utilisateur. |
##MS_ServerPerformanceStateReader## | Les membres du rôle serveur fixe ##MS_ServerPerformanceStateReader## peuvent lire toutes les vues catalogue qui sont couvertes par VIEW SERVER PERFORMANCE STATE, et qui ont des autorisations respectives VIEW DATABASE PERFORMANCE STATE sur toute base de données sur laquelle le membre de ce rôle détient un compte d’utilisateur. Il s’agit d’un sous-ensemble de ce à quoi le rôle serveur ##MS_ServerStateReader## a accès, ce qui permet de se conformer au principe du privilège moindre. |
##MS_ServerSecurityStateReader## | Les membres du rôle serveur fixe ##MS_ServerSecurityStateReader## peuvent lire toutes les vues catalogue qui sont couvertes par VIEW SERVER SECURITY STATE, et qui ont des autorisations respectives VIEW DATABASE SECURITY STATE sur toute base de données sur laquelle le membre de ce rôle détient un compte d’utilisateur. Il s’agit d’un petit sous-ensemble de ce à quoi le rôle serveur ##MS_ServerStateReader## a accès, ce qui permet de se conformer au principe du privilège moindre. |
##MS_DefinitionReader## | Les membres du rôle serveur fixe ##MS_DefinitionReader## peuvent lire toutes les vues catalogue qui sont couvertes par VIEW ANY DEFINITION, et qui ont des autorisations respectives VIEW DEFINITION sur toute base de données sur laquelle le membre de ce rôle détient un compte d’utilisateur. |
##MS_PerformanceDefinitionReader## | Les membres du rôle serveur fixe ##MS_PerformanceDefinitionReader## peuvent lire toutes les vues catalogue qui sont couvertes par VIEW ANY PERFORMANCE DEFINITION, et qui ont des autorisations respectives VIEW PERFORMANCE DEFINITION sur toute base de données sur laquelle le membre de ce rôle détient un compte d’utilisateur. C’est un petit sous-ensemble de ce à quoi 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 à quoi le rôle serveur ##MS_DefinitionReader## a accès ce qui permet de se conformer au principe du privilège moindre. |
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 |
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 TOUTE DÉFINITION DES PERFORMANCES VIEW ANY SECURITY DEFINITION |
VIEW DEFINITION AFFICHER LA DÉFINITION DES PERFORMANCES VIEW SECURITY DEFINITION |
##MS_PerformanceDefinitionReader## | AFFICHER TOUTE DÉFINITION DES 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 attribuées aux rôles de serveur hérités (SQL Server 2019 et versions antérieures).
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. (l’ex CONTROL SERVER n’implique pas l’appartenance au rôle serveur fixe sysadmin .) Cependant, 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. Déconseillé. Utilisez plutôt ALTER SERVER ROLE . |
sp_dropsrvrolemember (Transact-SQL) | 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