Rôles au niveau de la base de données

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 Microsoft 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. 

Il existe deux types de rôles au niveau de la base de données dans SQL Server : 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 flexibles 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 des rôles de base de données db_owner et db_securityadmin peuvent gérer l'appartenance aux rôles de base de données fixes. Toutefois, seuls les membres du rôle de base de données db_owner peuvent ajouter des membres au rôle de base de données fixe db_owner. La base de données msdb comprend également des rôles de base de données fixes destinés à des usages 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. Chaque membre d'un rôle de base de données fixe peut ajouter des connexions à ce rôle.

Important

N'ajoutez pas de rôles de base de données flexibles en tant que membres de rôles fixes. Cela pourrait activer une élévation de privilèges involontaire.

Le tableau ci-dessous répertorie les rôles au niveau de la base de données fixes et leurs fonctionnalités. Ces rôles existent dans toutes les bases de données.

Nom du rôle au niveau de la base de données

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 supprimer la base de données.

db_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. L'ajout de principaux à ce rôle pourrait activer une élévation de privilèges involontaire.

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 connexions 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.

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.

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 utilisateur.

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 utilisateur d'une base de données.

Pour des informations spécifiques sur les autorisations des rôles fixes au niveau de la base de données, consultez Autorisations des rôles de base de données fixes (moteur de base de données).

Rôles de msdb

La base de données msdb contient les rôles à usages spéciaux présentés dans le tableau ci-dessous.

Nom du rôle msdb

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 DTS (Data Transformation Services) au lieu de SSIS. Pour plus d'informations, consultez Utilisation des rôles Integration Services.

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 Sécurité du collecteur 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 Administration de 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. Pour plus d'informations, consultez Création des groupes de serveurs.

dbm_monitor

Créée dans la base de données msdb lorsque la première base de données est inscrite auprès du 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.

Important

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èges est possible parce que ces rôles peuvent modifier les packages Integration Services, et que ces 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 protéger contre cette élévation de privilèges 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 les travaux de l'Agent SQL Server 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.

Utilisation 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.

Fonctionnalité

Type

Description

sp_helpdbfixedrole (Transact-SQL)

Métadonnées

Renvoie la liste des rôles de base de données fixes.

sp_dbfixedrolepermission (Transact-SQL)

Métadonnées

Affiche les autorisations d'un rôle de base de données fixe.

sp_helprole (Transact-SQL)

Métadonnées

Retourne des informations sur les rôles dans la base de données actuelle.

sp_helprolemember (Transact-SQL)

Métadonnées

Retourne des informations sur les membres d'un rôle dans la base de données actuelle.

sys.database_role_members (Transact-SQL)

Métadonnées

Retourne une ligne pour chaque membre de chaque rôle de base de données.

IS_MEMBER (Transact-SQL)

Métadonnées

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é.

CREATE ROLE (Transact-SQL)

Commande

Crée un nouveau rôle de base de données dans la base de données actuelle.

ALTER ROLE (Transact-SQL)

Commande

Modifie le nom d'un rôle de base de données.

DROP ROLE (Transact-SQL)

Commande

Supprime un rôle de la base de données.

sp_addrole (Transact-SQL)

Commande

Crée un nouveau rôle de base de données dans la base de données actuelle.

sp_droprole (Transact-SQL)

Commande

Supprime un rôle de base de données de la base de données actuelle.

sp_addrolemember (Transact-SQL)

Commande

Ajoute un utilisateur ou un rôle de base de données, une connexion ou un groupe Windows à un rôle de base de données dans la base de données actuelle.

sp_droprolemember (Transact-SQL)

Commande

Supprime un compte de sécurité d'un rôle SQL Server dans la base de données actuelle.

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 à public sur cet objet.