Rôles au niveau de la base de donnéesDatabase-Level Roles

S’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseS’applique à :Applies to: ouiSQL ServerSQL Server (toutes les versions prises en charge) yesSQL ServerSQL Server (all supported versions) OuiAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database OuiAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance ouiAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics ouiParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Pour gérer facilement les autorisations dans vos bases de données, SQL ServerSQL Server fournit plusieurs rôles , qui sont des principaux de sécurité regroupant d'autres principaux.To easily manage the permissions in your databases, SQL ServerSQL Server provides several roles which are security principals that group other principals. Ils sont similaires aux *groupes _ du système d’exploitation MicrosoftMicrosoft Windows.They are like *groups _ in the MicrosoftMicrosoft Windows operating system. 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.Database-level roles are database-wide in their permissions scope.

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 .To add and remove users to a database role, use the ADD MEMBER and DROP MEMBER options of the ALTER ROLE statement. Parallel Data WarehouseParallel Data Warehouse et Azure Synapse ne prennent pas en charge cette utilisation de ALTER ROLE.and Azure Synapse does not support this use of ALTER ROLE. Utilisez les anciennes procédures sp_addrolemember et sp_droprolemember à la place.Use the older sp_addrolemember and sp_droprolemember procedures instead.

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.There are two types of database-level roles: _fixed-database roles* that are predefined in the database and user-defined database roles that you can create.

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.Fixed-database roles are defined at the database level and exist in each database. 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.Members of the db_owner database role can manage fixed-database role membership. La base de données msdb comprend également des rôles de base de données spéciaux.There are also some special-purpose database roles in the msdb database.

Vous pouvez ajouter tout compte de base de données, ainsi que d’autres rôles SQL ServerSQL Server dans des rôles au niveau de la base de données.You can add any database account and other SQL ServerSQL Server roles into database-level roles.

Conseil

N’ajoutez pas de rôles de base de données définis par l’utilisateur en tant que membres de rôles fixes.Do not add user-defined database roles as members of fixed roles. Cela pourrait activer une élévation de privilèges involontaire.This could enable unintended privilege escalation.

Les autorisations des rôles de base de données définis par l’utilisateur peuvent être personnalisées à l’aide des instructions GRANT, DENY et REVOKE.The permissions of user-defined database roles can be customized by using the GRANT, DENY, and REVOKE statements. Pour plus d’informations, consultez Autorisations (moteur de base de données).For more information, see Permissions (Database Engine).

Pour obtenir une liste de toutes les autorisations, consultez l’affiche Autorisations des moteurs de base de données .For a list of all the permissions, see the Database Engine Permissions poster. Les autorisations de niveau serveur ne peuvent pas être accordées aux rôles de base de données.Server-level permissions cannot be granted to database roles. 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.Logins and other server-level principals (such as server roles) cannot be added to database roles. Pour la sécurité au niveau du serveur dans SQL ServerSQL Server, utilisez les rôles de serveur à la place.For server-level security in SQL ServerSQL Server, use server roles instead. Les autorisations de niveau serveur ne peuvent pas être accordées par le biais des rôles dans SQL DatabaseSQL Database et Azure Synapse.Server-level permissions cannot be granted through roles in SQL DatabaseSQL Database and Azure Synapse.

rôles de base de données fixesFixed-Database Roles

Le tableau suivant répertorie les rôles de base de données fixes et leurs fonctionnalités.The following table shows the fixed-database roles and their capabilities. Ces rôles existent dans toutes les bases de données.These roles exist in all databases. À 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.Except for the public database role, the permissions assigned to the fixed-database roles cannot be changed.

Nom du rôle de base de données fixeFixed-Database role name DescriptionDescription
db_ownerdb_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 supprimer la base de données dans SQL ServerSQL Server.Members of the db_owner fixed database role can perform all configuration and maintenance activities on the database, and can also drop the database in SQL ServerSQL Server. (Dans SQL DatabaseSQL Database et Azure Synapse, certaines activités de maintenance requièrent des autorisations de niveau serveur et ne peuvent pas être effectuées par db_owners.)(In SQL DatabaseSQL Database and Azure Synapse, some maintenance activities require server-level permissions and cannot be performed by db_owners.)
db_securityadmindb_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.Members of the db_securityadmin fixed database role can modify role membership for custom roles only and manage permissions. Les membres de ce rôle peuvent potentiellement élever leurs privilèges et leurs actions doivent être supervisées.Members of this role can potentially elevate their privileges and their actions should be monitored.
db_accessadmindb_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 connexions SQL ServerSQL Server .Members of the db_accessadmin fixed database role can add or remove access to the database for Windows logins, Windows groups, and SQL ServerSQL Server logins.
db_backupoperatordb_backupoperator Les membres du rôle de base de données fixe db_backupoperator peuvent sauvegarder la base de données.Members of the db_backupoperator fixed database role can back up the database.
db_ddladmindb_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.Members of the db_ddladmin fixed database role can run any Data Definition Language (DDL) command in a database.
db_datawriterdb_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.Members of the db_datawriter fixed database role can add, delete, or change data in all user tables.
db_datareaderdb_datareader Les membres du rôle de base de données fixe db_datareader peuvent lire toutes les données de toutes les tables utilisateur.Members of the db_datareader fixed database role can read all data from all user tables.
db_denydatawriterdb_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.Members of the db_denydatawriter fixed database role cannot add, modify, or delete any data in the user tables within a database.
db_denydatareaderdb_denydatareader Les membres du rôle de base de données fixe db_denydatareader ne peuvent lire aucune donnée des tables utilisateur d'une base de données.Members of the db_denydatareader fixed database role cannot read any data in the user tables within a database.

Les autorisations accordées aux rôles de base de données fixe ne peuvent pas être modifiées.The permissions assigned to the fixed-database roles cannot be changed. La figure suivante montre les autorisations accordées aux rôles de base de données fixe :The following figure shows the permissions assigned to the fixed-database roles:

fixed_database_role_permissions

Rôles spéciaux pour SQL DatabaseSQL Database et Azure SynapseSpecial Roles for SQL DatabaseSQL Database and Azure Synapse

Ces rôles de base de données existent uniquement dans la base de données MASTER virtuelle.These database roles exist only in the virtual master database. Leurs autorisations sont limitées aux actions effectuées dans MASTER.Their permissions are restricted to actions performed in master. Seuls les utilisateurs de base de données de MASTER peuvent être ajoutés à ces rôles.Only database users in master can be added to these roles. 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.Logins cannot be added to these roles, but users can be created based on logins and then those users can be added to the roles. Les utilisateurs de base de données autonome dans MASTER peuvent également être ajoutés à ces rôles.Contained database users in master can also be added to these roles. 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.However, contained database users added to the dbmanager role in master cannot be used to create new databases.

Nom de rôleRole name DescriptionDescription
dbmanagerdbmanager Permet de créer et de supprimer des bases de données.Can create and delete databases. 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.A member of the dbmanager role that creates a database, becomes the owner of that database which allows that user to connect to that database as the dbo user. L’utilisateur dbo possède toutes les autorisations de base de données dans la base de données.The dbo user has all database permissions in the database. 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.Members of the dbmanager role do not necessarily have permission to access databases that they do not own.
loginmanagerloginmanager Peut créer et supprimer des connexions dans la base de données MASTER virtuelle.Can create and delete logins in the virtual master database.

Notes

Le principal de niveau du serveur et l’administrateur Azure Active Directory (s’il est configuré) détiennent toutes les autorisations dans SQL DatabaseSQL Database et Azure Synapse sans avoir besoin d’être membres de tous les rôles.The server-level principal and the Azure Active Directory Administrator (if configured) have all permissions in the SQL DatabaseSQL Database and Azure Synapse without needing to be members of any roles. Pour plus d’informations, voir Authentification et autorisation SQL Database : Octroi de l’accès.For more information, see SQL Database Authentication and Authorization: Granting Access.

Certains rôles de base de données ne s’appliquent pas à Azure SQL ou à Synapse SQL :Some database roles are not applicable to Azure SQL or Synapse SQL:

  • db_backupoperator n’est pas applicable dans Azure SQL Database (instance non managée) et dans un pool Synapse SQL serverless, car les commandes T-SQL de sauvegarde et de restauration ne sont pas disponibles.db_backupoperator is not applicable in Azure SQL database (not managed instance) and Synapse SQL serverless pool because backup and restore T-SQL comands are not available.
  • db_datawriter et db_denydatawriter ne s’appliquent pas à Synapse SQL serverless, car il lit seulement des données externes.db_datawriter and db_denydatawriter are not applicable to Synapse SQL serverless because it just reads external data.

Rôles de msdbmsdb Roles

La base de données msdb contient les rôles à usages spéciaux présentés dans le tableau ci-dessous.The msdb database contains the special-purpose roles that are shown in the following table.

Nom du rôle msdbmsdb role name DescriptionDescription
db_ssisadmindb_ssisadmin

db_ssisoperatordb_ssisoperator

db_ssisltduserdb_ssisltduser
Les membres de ces rôles de base de données peuvent administrer et utiliser SSISSSIS.Members of these database roles can administer and use SSISSSIS. Les instances de SQL ServerSQL Server mises à niveau à partir d’une version antérieure peuvent contenir une version plus ancienne du rôle, nommée à l’aide de DTS (Data Transformation Services) au lieu de SSISSSIS.Instances of SQL ServerSQL Server that are upgraded from an earlier version might contain an older version of the role that was named using Data Transformation Services (DTS) instead of SSISSSIS. Pour plus d’informations, consultez Rôles Integration Services (Service SSIS).For more information, see Integration Services Roles (SSIS Service).
dc_admindc_admin

dc_operatordc_operator

dc_proxydc_proxy
Les membres de ces rôles de base de données peuvent administrer et utiliser le collecteur de données.Members of these database roles can administer and use the data collector. Pour plus d'informations, consultez Data Collection.For more information, see Data Collection.
PolicyAdministratorRolePolicyAdministratorRole 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.Members of the db_ PolicyAdministratorRole database role can perform all configuration and maintenance activities on Policy-Based Management policies and conditions. Pour plus d’informations, consultez Administrer des serveurs à l’aide de la Gestion basée sur des stratégies.For more information, see Administer Servers by Using Policy-Based Management.
ServerGroupAdministratorRoleServerGroupAdministratorRole

ServerGroupReaderRoleServerGroupReaderRole
Les membres de ces rôles de base de données peuvent administrer et utiliser des groupes de serveurs inscrits.Members of these database roles can administer and use registered server groups.
dbm_monitordbm_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.Created in the msdb database when the first database is registered in Database Mirroring Monitor. Le rôle dbm_monitor ne comporte aucun membre tant qu’un administrateur système n’affecte pas d’utilisateurs au rôle.The dbm_monitor role has no members until a system administrator assigns users to the role.

Important

Les membres du rôle db_ssisadmin et du rôle dc_admin peuvent être en mesure d’élever leurs privilèges à sysadmin.Members of the db_ssisadmin role and the dc_admin role may be able to elevate their privileges to sysadmin. Cette élévation de privilège peut se produire, car ces rôles peuvent modifier les packages Integration ServicesIntegration Services et les packages Integration ServicesIntegration Services peuvent être exécutés par SQL ServerSQL Server à l’aide du contexte de sécurité sysadmin de l’Agent SQL ServerSQL Server .This elevation of privilege can occur because these roles can modify Integration ServicesIntegration Services packages and Integration ServicesIntegration Services packages can be executed by SQL ServerSQL Server using the sysadmin security context of SQL ServerSQL Server Agent. Pour empêcher cette élévation de privilège durant l’exécution de plans de maintenance, de jeux d’éléments de collecte de données et d’autres packages Integration ServicesIntegration Services , configurez les travaux de SQL ServerSQL Server Agent qui exécutent des packages de façon à utiliser un compte proxy doté de privilèges limités ou ajoutez uniquement des membres sysadmin aux rôles db_ssisadmin et dc_admin .To guard against this elevation of privilege when running maintenance plans, data collection sets, and other Integration ServicesIntegration Services packages, configure SQL ServerSQL Server Agent jobs that run packages to use a proxy account with limited privileges or only add sysadmin members to the db_ssisadmin and dc_admin roles.

Utilisation des rôles au niveau de la base de donnéesWorking with Database-Level Roles

Le tableau ci-dessous explique les commandes, vues et fonctions permettant d'utiliser les rôles au niveau de la base de données.The following table explains the commands, views and functions for working with database-level roles.

FonctionnalitéFeature TypeType DescriptionDescription
sp_helpdbfixedrole (Transact-SQL)sp_helpdbfixedrole (Transact-SQL) MétadonnéesMetadata Retourne une liste des rôles de base de données fixes.Returns a list of the fixed database roles.
sp_dbfixedrolepermission (Transact-SQL)sp_dbfixedrolepermission (Transact-SQL) MétadonnéesMetadata Affiche les autorisations d'un rôle de base de données fixe.Displays the permissions of a fixed database role.
sp_helprole (Transact-SQL)sp_helprole (Transact-SQL) MétadonnéesMetadata Renvoie les informations concernant les rôles de la base de données active.Returns information about the roles in the current database.
sp_helprolemember (Transact-SQL)sp_helprolemember (Transact-SQL) MétadonnéesMetadata Retourne des informations sur les membres d'un rôle dans la base de données actuelle.Returns information about the members of a role in the current database.
sys.database_role_members (Transact-SQL)sys.database_role_members (Transact-SQL) MétadonnéesMetadata Retourne une ligne pour chaque membre de chaque rôle de base de données.Returns one row for each member of each database role.
IS_MEMBER (Transact-SQL)IS_MEMBER (Transact-SQL) MétadonnéesMetadata Indique si l'utilisateur actuel est membre du groupe Microsoft Windows ou du rôle de base de données Microsoft SQL Server spécifié.Indicates whether the current user is a member of the specified Microsoft Windows group or Microsoft SQL Server database role.
CREATE ROLE (Transact-SQL)CREATE ROLE (Transact-SQL) CommandeCommand Crée un rôle de base de données dans la base de données active.Creates a new database role in the current database.
ALTER ROLE (Transact-SQL)ALTER ROLE (Transact-SQL) CommandeCommand Modifie le nom ou l’appartenance à un rôle de base de données.Changes the name or membership of a database role.
DROP ROLE (Transact-SQL)DROP ROLE (Transact-SQL) CommandeCommand Supprime un rôle de la base de données.Removes a role from the database.
sp_addrole (Transact-SQL)sp_addrole (Transact-SQL) CommandeCommand Crée un rôle de base de données dans la base de données active.Creates a new database role in the current database.
sp_droprole (Transact-SQL)sp_droprole (Transact-SQL) CommandeCommand Supprime un rôle de base de données de la base de données actuelle.Removes a database role from the current database.
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL) CommandeCommand 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.Adds a database user, database role, Windows login, or Windows group to a database role in the current database. Toutes les plateformes sauf Parallel Data WarehouseParallel Data Warehouse et Azure Synapse doivent utiliser ALTER ROLE à la place.All platforms except Parallel Data WarehouseParallel Data Warehouse and Azure Synapse should use ALTER ROLE instead.
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL) CommandeCommand Supprime un compte de sécurité d'un rôle SQL Server dans la base de données actuelle.Removes a security account from a SQL Server role in the current database. Toutes les plateformes sauf Parallel Data WarehouseParallel Data Warehouse et Azure Synapse doivent utiliser ALTER ROLE à la place.All platforms except Parallel Data WarehouseParallel Data Warehouse and Azure Synapse should use ALTER ROLE instead.
GRANTGRANT AutorisationsPermissions Ajoute l’autorisation à un rôle.Adds permission to a role.
DENYDENY AutorisationsPermissions Refuse une autorisation à un rôle.Denies a permission to a role.
REVOKEREVOKE AutorisationsPermissions Supprime des autorisations accordées ou refusées antérieurement.Removes a previously granted or denied permissions.

Rôle de base de données publicpublic Database Role

Chaque utilisateur de base de données appartient au rôle de base de données public .Every database user belongs to the public database role. 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 à public sur cet objet.When a user has not been granted or denied specific permissions on a securable object, the user inherits the permissions granted to public on that object. Les utilisateurs de base de données ne peuvent pas être supprimés du rôle public .Database users cannot be removed from the public role.

Affichages catalogue de sécurité (Transact-SQL)Security Catalog Views (Transact-SQL)

Procédures stockées de sécurité (Transact-SQL)Security Stored Procedures (Transact-SQL)

Fonctions de sécurité (Transact-SQL)Security Functions (Transact-SQL)

Sécurisation de SQL ServerSecuring SQL Server

sp_helprotect (Transact-SQL)sp_helprotect (Transact-SQL)