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 master
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 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).
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 :
- Crée un rôle de niveau serveur : SQLArcExtensionServerRole
- Crée un rôle de niveau base de données : SQLArcExtensionUserRole
- Ajoute le compte NT AUTHORITY\SYSTEM à chaque rôle
- Cartes NT AUTHORITY\SYSTEM au niveau de la base de données pour chaque base de données
- 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.
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour