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

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data WarehouseouiParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel 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 ne prend pas en charge cette utilisation de ALTER ROLE. 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. Chaque membre d’un rôle de base de données fixe peut ajouter des utilisateurs à ce rôle.Each member of a fixed-database role can add other users to that same role.

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 Base de données SQLSQL Database et SQL Data WarehouseSQL Data Warehouse.)Server-level permissions cannot be granted through roles in Base de données SQLSQL Database and SQL Data WarehouseSQL Data Warehouse.)

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 de la public rôle de base de données, les autorisations attribuées aux rôles de base de données fixe ne peut pas être modifié.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 Base de données SQLSQL Database et SQL Data WarehouseSQL Data Warehouse, certaines activités de maintenance requièrent des autorisations de niveau serveur et ne peuvent pas être effectuées par db_owners.)(In Base de données SQLSQL Database and SQL Data WarehouseSQL Data Warehouse, 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 et gérer les autorisations.Members of the db_securityadmin fixed database role can modify role membership and manage permissions. L'ajout de principaux à ce rôle pourrait activer une élévation de privilèges involontaire.Adding principals to this role could enable unintended privilege escalation.
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 Base de données SQLSQL Database et SQL Data WarehouseSQL Data WarehouseSpecial Roles for Base de données SQLSQL Database and SQL Data WarehouseSQL Data Warehouse

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 contenus dans MASTER peuvent également être ajoutés à ces rôles.Contained database users in master, can also be added to these roles.

Nom du 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 devient le propriétaire de cette base de données qui permet à cet utilisateur 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 databasee 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.
Note

Le principal de niveau du serveur et l’administrateur Azure Active Directory (s’il est configuré) détiennent toutes les autorisations dans Base de données SQLSQL Database et SQL Data WarehouseSQL Data Warehouse 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 Base de données SQLSQL Database and SQL Data WarehouseSQL Data Warehouse without needing to be members of any roles. Pour plus d’informations, voir Authentification et autorisation de base de données SQL : octroi de l’accès.For more information, see SQL Database Authentication and Authorization: Granting Access.

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 lors de 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 de R ServicesWorking with R Services

S’applique à : SQL Server à partir de SQL Server 2017SQL Server 2017Applies to: SQL Server starting with SQL Server 2017SQL Server 2017

Quand vous installez R Services, vous disposez de rôles de base de données supplémentaires pour la gestion des packages.When R Services is installed, additional database roles are available for managing packages. Pour plus d’informations, consultez Gestion des packages R pour SQL Server.For more information, see R Package management for SQL Server.

Nom du rôleRole name DescriptionDescription
rpkgs-usersrpkgs-users Permet aux utilisateurs d’employer tous les packages partagés qui ont été installés par des membres du rôle rpkgs-shared.Allows users to use any shared packages that were installed by members of the rpkgs-shared role.
rpkgs-privaterpkgs-private Fournit l’accès aux packages partagés avec les mêmes autorisations que le rôle rpkgs-users.Provides access to shared packages with the same permissions as the rpkgs-users role. Les membres de ce rôle peuvent également installer, supprimer et utiliser des packages à étendue privée.Members of this role can also install, remove and use privately scoped packages.
rpkgs-sharedrpkgs-shared Fournit les mêmes autorisations que le rôle rpkgs-private.Provides the same permissions as the rpkgs-private role. Les utilisateurs membres de ce rôle peuvent également installer ou supprimer des packages partagés.Users who are members of this role can also install or remove shared packages.

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) CommandCommand 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) CommandCommand 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) CommandCommand Supprime un rôle de la base de données.Removes a role from the database.
sp_addrole (Transact-SQL)sp_addrole (Transact-SQL) CommandCommand 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) CommandCommand 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) CommandCommand 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 doivent utiliser ALTER ROLE à la place.All platforms except Parallel Data WarehouseParallel Data Warehouse should use ALTER ROLE instead.
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL) CommandCommand 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 doivent utiliser ALTER ROLE à la place.All platforms except Parallel Data WarehouseParallel Data Warehouse should use ALTER ROLE instead.
GRANTGRANT PermissionsPermissions Ajoute l’autorisation à un rôle.Adds permission to a role.
DENYDENY PermissionsPermissions Refuse une autorisation à un rôle.Denys a permission to a role.
REVOKEREVOKE PermissionsPermissions 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.

Contenu connexeRelated Content

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)