Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Base de données SQL dans Microsoft Fabric
Pour gérer facilement les autorisations dans vos bases de données, SQL Server fournit plusieurs rôles qui sont des principaux de sécurité regroupant d'autres principaux. Ils sont similaires aux groupes du système d'exploitation Windows. Les autorisations des rôles au niveau de la base de données ont une portée à l'échelle de la base de données.
Pour ajouter et supprimer des utilisateurs à un rôle de base de données, utilisez les options ADD MEMBER et DROP MEMBER les options de l’instruction ALTER ROLE . Analytics Platform System (PDW) et Azure Synapse Analytics ne prennent pas en charge l'utilisation de ALTER ROLE. Utilisez les anciennes procédures sp_addrolemember et sp_droprolemember à la place.
Il existe deux types de rôles au niveau de la base de données : les rôles de base de données fixes qui sont prédéfinis dans la base de données et les rôles de base de données définis par l’utilisateur que vous pouvez créer.
Les rôles de base de données fixes sont définis au niveau de la base de données et existent dans chaque base de données. Les membres du rôle de base de données db_owner peuvent gérer l’appartenance aux rôles de base de données fixes. La base de données msdb comprend également des rôles de base de données spéciaux.
Vous pouvez ajouter tout compte de base de données, ainsi que d'autres rôles SQL Server dans des rôles au niveau de la base de données.
Tip
N’ajoutez pas de rôles de base de données définis par l’utilisateur en tant que membres de rôles fixes. Cela pourrait activer une élévation de privilèges involontaire.
Les autorisations des rôles de la base de données définis par l’utilisateur peuvent être personnalisées à l’aide des instructions GRANT, DENY et REVOKE. Pour plus d′informations, voir Autorisations (moteur de base de données).
Pour obtenir une liste de toutes les autorisations, consultez l’affiche Autorisations des moteurs de base de données . Les autorisations de niveau serveur ne peuvent pas être accordées aux rôles de base de données. Les connexions et les autres principaux au niveau du serveur (tels que les rôles de serveur) ne peuvent pas être ajoutés aux rôles de base de données. Pour la sécurité au niveau du serveur dans SQL Server, utilisez les rôles serveur à la place. Les autorisations de niveau serveur ne peuvent pas être accordées par le biais des rôles dans Azure SQL Database et Azure Synapse Analytics.
Rôles de base de données fixes
Le tableau suivant répertorie les rôles de base de données fixes et leurs fonctionnalités. Ces rôles existent dans toutes les bases de données. À l'exception du rôle de base de données public, les autorisations affectées aux rôles de base de données fixes ne peuvent pas être changées.
| Nom du rôle de base de données fixe | Description |
|---|---|
| db_owner | Les membres du rôle de base de données fixe db_owner peuvent effectuer toutes les activités de configuration et de maintenance sur la base de données et peuvent également DROP la base de données dans SQL Server. (Dans SQL Database et Azure Synapse, certaines activités de maintenance nécessitent des autorisations au niveau du serveur et ne peuvent pas être effectuées par le rôle db_owners.) |
| db_securityadmin | Les membres du rôle de base de données fixe db_securityadmin peuvent modifier l’appartenance au rôle pour les rôles personnalisés uniquement et gérer les autorisations. Les membres de ce rôle peuvent potentiellement élever leurs privilèges et leurs actions doivent être supervisées. |
| db_accessadmin | Les membres du rôle de base de données fixe db_accessadmin peuvent ajouter ou supprimer l'accès à la base de données des connexions Windows, des groupes Windows et des comptes de connexion SQL Server. |
| db_backupoperator | Les membres du rôle de base de données fixe db_backupoperator peuvent sauvegarder la base de données. |
| db_ddladmin | Les membres du rôle de base de données fixe db_ddladmin peuvent exécuter n'importe quelle commande DDL (Data Definition Language) dans une base de données. Les membres de ce rôle peuvent potentiellement élever leurs privilèges en manipulant du code qui peut être exécuté avec des privilèges élevés et leurs actions doivent être surveillées. |
| db_datawriter | Les membres du rôle de base de données fixe db_datawriter peuvent ajouter, supprimer et modifier des données dans toutes les tables utilisateur. Dans la plupart des cas d'usage, ce rôle est combiné avec db_datareader appartenance pour permettre la lecture des données à modifier. |
| db_datareader | Les membres du rôle de base de données fixe db_datareader peuvent lire toutes les données de toutes les tables et vues utilisateur. Les objets utilisateur peuvent exister dans n’importe quel schéma, sauf sys et INFORMATION_SCHEMA. |
| db_denydatawriter | Les membres du rôle de base de données fixe db_denydatawriter ne peuvent ajouter, modifier ou supprimer aucune donnée des tables utilisateur d'une base de données. |
| db_denydatareader | Les membres du rôle de base de données fixe db_denydatareader ne peuvent lire aucune donnée des tables et vues utilisateur d'une base de données. Les membres de ce rôle ne peuvent pas également lire les métadonnées relatives à la base de données et à ses objets, telles que l’affichage des vues système. |
Les autorisations accordées aux rôles de base de données fixe ne peuvent pas être modifiées. Tous les rôles (y compris le public rôle) disposent des autorisations CONNECT. La figure suivante montre les autorisations accordées aux rôles de base de données fixe :
| Nom du rôle | Permissions |
|---|---|
| db_owner | CONTROL DATABASE : dispose de toutes les autorisations dans la base de données. |
| db_securityadmin | MODIFIER N’IMPORTE QUEL RÔLE D’APPLICATION CRÉER SCHÉMA MODIFIER N’IMPORTE QUEL RÔLE DÉFINITION DE LA VUE |
| db_accessadmin | MODIFIER TOUS LES UTILISATEURS CRÉER SCHÉMA CRÉER UTILISATEUR |
| db_backupoperator | SAUVEGARDER BASE DE DONNÉES JOURNAL DE SAUVEGARDE CHECKPOINT |
| db_ddladmin | MODIFIER TOUT ASSEMBLAGE MODIFIER N’IMPORTE QUELLE CLÉ ASYMÉTRIQUE MODIFIER TOUT CERTIFICAT Modifier tout contrat ALTERER N'IMPORTE QUEL DÉCLENCHEUR DDL DE BASE DE DONNÉES MODIFIER TOUTE NOTIFICATION D'ÉVÉNEMENT DE BASE DE DONNÉES MODIFIER TOUT ESPACE DE DONNÉES MODIFIER N'IMPORTE QUELLE BIBLIOTHÈQUE EXTERNE MODIFIER N'IMPORTE QUEL CATALOGUE DE TEXTE INTÉGRAL MODIFIER N’IMPORTE QUEL TYPE DE MESSAGE MODIFIER TOUT LIEN DE SERVICE À DISTANCE MODIFIER TOUTE ROUTE MODIFIER TOUT SCHÉMA MODIFIER N'IMPORTE QUEL SERVICE MODIFIER TOUTE CLÉ SYMÉTRIQUE CHECKPOINT CRÉER AGRÉGAT (CREATE AGGREGATE) CRÉER L'ASSEMBLAGE CRÉER UNE CLÉ ASYMÉTRIQUE CRÉER CERTIFICAT CRÉER CONTRAT CRÉER UNE NOTIFICATION D'ÉVÉNEMENT DDL DE BASE DE DONNÉES CRÉER PAR DÉFAUT CRÉER UNE BIBLIOTHÈQUE EXTERNE CRÉER UN CATALOGUE DE TEXTE INTÉGRAL CRÉER FONCTION CRÉER UN TYPE DE MESSAGE CRÉER PROCÉDURE CREATE QUEUE CRÉER UN LIEN DE SERVICE DISTANT CRÉER UNE ROUTE CRÉER UNE RÈGLE CRÉER SCHÉMA CRÉER UN SERVICE CREATE SYMMETRIC KEY (créer une clé symétrique) CRÉER UN SYNONYME CREATE TABLE CRÉER UN TYPE CRÉER VUE CRÉER UNE COLLECTION DE SCHÉMA XML RÉFÉRENCES S’applique à : SQL Server 2019 et versions ultérieures MODIFIER TOUTE LANGUE EXTERNE (The translation retains the original due to its technical nature and specificity.) S’applique à : SQL Server 2022 et versions ultérieures MODIFIER TOUTE SOURCE DE DONNÉES EXTERNE MODIFIER TOUT FORMAT DE FICHIER EXTERNE MODIFIER TOUTE TÂCHE EXTERNE MODIFIER TOUT FLUX EXTERNE MODIFIER LE REGISTRE ACTIVER LE REGISTRE |
| db_datareader | GRANT SELECT ON DATABASE ::<database-name> |
| db_denydatareader | REFUSER LA SÉLECTION SUR LA BASE DE DONNÉES ::<database-name> |
| db_datawriter | GRANT INSERT ON DATABASE ::<database-name>GRANT UPDATE ON DATABASE :: <database-name>GRANT DELETE ON DATABASE :: <database-name> |
| db_denydatawriter | REFUSER L’INSERTION SUR LA BASE DE DONNÉES ::<database-name>REJETER LA MISE À JOUR DE LA BASE DE DONNÉES:: <database-name>REFUSER DELETE SUR LA BASE DE DONNÉES :: <database-name> |
| public | Il n’existe aucune autorisation au niveau de la base de données inhérente au rôle de base de données public. Toutefois, certaines autorisations de base de données sont présentes par défaut. Plus précisément, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION, VIEW ANY COLUMN MASTER KEY DEFINITION et la permission SELECT sur plusieurs tables système individuelles. Ces autorisations peuvent être révoquées. |
Rôles spéciaux pour Azure SQL Database et Azure Synapse
Ces rôles de base de données existent uniquement dans la base de données master virtuelle. Leurs autorisations sont limitées aux actions effectuées dans master. Seuls les utilisateurs de base de données dans master peuvent être ajoutés à ces rôles. Aucune connexion ne peut être ajoutée à ces rôles, toutefois les utilisateurs peuvent être créés en fonction des connexions et ensuite ces utilisateurs peuvent être ajoutés aux rôles. Les utilisateurs de base de données autonome dans master peuvent également être ajoutés à ces rôles. Toutefois, les utilisateurs de base de données autonome ajoutés au rôle dbmanager dans master ne peuvent pas être utilisés pour créer de nouvelles bases de données.
| Nom du rôle | Description |
|---|---|
| dbmanager | Permet de créer et de supprimer des bases de données. Un membre du rôle dbmanager 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 possède toutes les autorisations de base de données dans la base de données. Les membres du rôle dbmanager n’ont pas nécessairement l’autorisation d’accéder aux bases de données qui ne leur appartiennent pas. |
| db_exporter | Les membres du rôle de base de données fixe db_exporter peuvent effectuer toutes les activités d’exportation de données. Les autorisations accordées via ce rôle sont CREATE TABLE, ALTER ANY SCHEMA, ALTER ANY EXTERNAL DATA SOURCE, ALTER ANY EXTERNAL FILE FORMAT.Application : pools SQL dédiés Azure Synapse Analytics (anciennement SQL DW) |
| loginmanager | Peut créer et supprimer des connexions dans la base de données master virtuelle. |
Note
Le principal au niveau du serveur et l'administrateur Microsoft Entra (s'il est configuré) détiennent toutes les autorisations dans SQL Database et Azure Synapse Analytics sans avoir besoin d'être membres de tous les rôles. Pour plus d’informations, consultez Configurer SQL Database, SQL Managed Instance et Azure Synapse Analytics pour autoriser l’accès aux bases de données.
Certains rôles de base de données ne s’appliquent pas à Azure SQL ni à Azure Synapse :
db_backupoperator n'est pas applicable dans la Azure SQL Database (instance non gérée) ni dans un pool serverless Azure Synapse Analytics, car les commandes T-SQL de sauvegarde et de restauration ne sont pas disponibles.
db_datawriter et db_denydatawriter ne s'appliquent pas à Azure Synapse Analytics serverless, car il ne fait que lire des données externes.
Rôles dans la base de données msdb
La base de données msdb contient les rôles à usages spéciaux présentés dans le tableau ci-dessous.
msdb nom du rôle |
Description |
|---|---|
|
db_ssisadmin db_ssisoperator db_ssisltduser |
Les membres de ces rôles de base de données peuvent administrer et utiliser SSIS. Les instances de SQL Server mises à niveau à partir d'une version antérieure peuvent contenir une version plus ancienne du rôle, nommée à l'aide de Data Transformation Services (DTS) au lieu de SSIS. Pour plus d’informations, consultez Rôles Integration Services (Service SSIS). |
|
dc_admin dc_operator dc_proxy |
Les membres de ces rôles de base de données peuvent administrer et utiliser le collecteur de données. Pour plus d’informations, consultez Collection de données. |
| PolicyAdministratorRole | Les membres du rôle de base de données db_ PolicyAdministratorRole peuvent effectuer toutes les activités de configuration et de maintenance sur les stratégies et conditions de la gestion basée sur une stratégie. Pour plus d’informations, consultez Administrer des serveurs à l’aide de la Gestion basée sur des stratégies. |
|
ServerGroupAdministratorRole ServerGroupReaderRole |
Les membres de ces rôles de base de données peuvent administrer et utiliser des groupes de serveurs inscrits. |
| dbm_monitor | Créé dans la base de données msdb lorsque la première base de données est inscrite dans le moniteur de mise en miroir de bases de données. Le rôle dbm_monitor ne comporte aucun membre tant qu’un administrateur système n’affecte pas d’utilisateurs au rôle. |
Les membres du rôle db_ssisadmin et du rôle dc_admin peuvent être en mesure d’élever leurs privilèges à sysadmin. Cette élévation de privilège peut se produire, car ces rôles peuvent modifier les packages Integration Services et les packages Integration Services peuvent être exécutés par SQL Server à l’aide du contexte de sécurité sysadmin de l’Agent SQL Server . Pour vous prémunir contre cette élévation de privilège lors de l'exécution de plans de maintenance, de jeux d'éléments de collecte de données et d'autres packages Integration Services, configurez des travaux de SQL Server Agent qui exécutent des packages pour l'utilisation d'un compte proxy doté de privilèges limités ou ajoutez uniquement des membres sysadmin aux rôles db_ssisadmin et dc_admin.
Utilisez des rôles au niveau de la base de données
Le tableau ci-dessous explique les commandes, vues et fonctions permettant d'utiliser les rôles au niveau de la base de données.
| Feature | Type | Description |
|---|---|---|
| sp_helpdbfixedrole | Metadata | Retourne une liste des rôles de base de données fixes. |
| sp_dbfixedrolepermission | Metadata | Affiche les autorisations d'un rôle de base de données fixe. |
| sp_helprole | Metadata | Renvoie les informations concernant les rôles de la base de données active. |
| sp_helprolemember | Metadata | Retourne des informations sur les membres d'un rôle dans la base de données actuelle. |
| sys.database_role_members | Metadata | Retourne une ligne pour chaque membre de chaque rôle de base de données. |
| IS_MEMBER | Metadata | Indique si l'utilisateur actuel est membre du groupe Microsoft Windows, du groupe Microsoft Entra ou du rôle de base de données Microsoft SQL Server spécifié. |
| CRÉER UN RÔLE | Command | Crée un rôle de base de données dans la base de données active. |
| MODIFIER LE RÔLE | Command | Modifie le nom ou l’appartenance à un rôle de base de données. |
| DROP ROLE | Command | Supprime un rôle de la base de données. |
| sp_addrole | Command | Crée un rôle de base de données dans la base de données active. |
| sp_droprole | Command | Supprime un rôle de base de données de la base de données actuelle. |
| sp_addrolemember | Command | Ajoute un utilisateur ou un rôle de base de données, un compte de connexion ou un groupe Windows à un rôle de base de données dans la base de données active. Toutes les plateformes à l'exception de Analytics Platform System (PDW) et d'Azure Synapse doivent utiliser ALTER ROLE à la place. |
| sp_droprolemember | Command | Supprime un compte de sécurité d'un rôle SQL Server dans la base de données actuelle. Toutes les plateformes à l'exception de Analytics Platform System (PDW) et d'Azure Synapse doivent utiliser ALTER ROLE à la place. |
| GRANT | Permissions | Ajoute l’autorisation à un rôle. |
| DENY | Permissions | Refuse une autorisation à un rôle. |
| REVOKE | Permissions | Supprime des autorisations accordées ou refusées antérieurement. |
Rôle de base de données public
Chaque utilisateur de base de données appartient au rôle de base de données public . Lorsqu'un utilisateur ne s'est pas vu accorder ou refuser des autorisations spécifiques sur un objet sécurisable, il hérite des autorisations accordées au public sur cet objet. Les utilisateurs de base de données ne peuvent pas être supprimés du rôle public.
Examples
Les exemples de cette section montrent comment utiliser des rôles au niveau de la base de données.
A. Ajout d’un utilisateur à un rôle au niveau de la base de données
L’exemple suivant ajoute l’utilisateur « Ben » au rôle fixe au niveau de la base de données db_datareader.
ALTER ROLE db_datareader ADD MEMBER Ben;
GO
B. Liste tous les principaux de base de données membres d'un rôle au niveau de la base de données
L’instruction suivante retourne tous les membres d’un rôle de base de données.
SELECT roles.principal_id AS RolePrincipalID,
roles.name AS RolePrincipalName,
database_role_members.member_principal_id AS MemberPrincipalID,
members.name AS MemberPrincipalName
FROM sys.database_role_members AS database_role_members
INNER JOIN sys.database_principals AS roles
ON database_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.database_principals AS members
ON database_role_members.member_principal_id = members.principal_id;
GO