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

 

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data WarehouseouiParallel Data Warehouse

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.

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. Parallel Data Warehouse ne prend pas en charge cette 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. Chaque membre d’un rôle de base de données fixe peut ajouter des utilisateurs à ce rôle.

System_CAPS_ICON_tip.jpg Astuce


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 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, consultez 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 de serveur à la place. Les autorisations de niveau serveur ne peuvent pas être accordées par le biais des rôles dans Base de données SQL et SQL Data Warehouse.)

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. Les autorisations accordées aux rôles de base de données fixe ne peuvent pas être modifiées.

Nom du rôle de base de données fixeDescription
db_ownerLes 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 Server. (Dans Base de données SQL et SQL Data Warehouse, certaines activités de maintenance requièrent des autorisations de niveau serveur et ne peuvent pas être effectuées par db_owners.)
db_securityadminLes 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_accessadminLes 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_backupoperatorLes membres du rôle de base de données fixe db_backupoperator peuvent sauvegarder la base de données.
db_ddladminLes 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_datawriterLes 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_datareaderLes membres du rôle de base de données fixe db_datareader peuvent lire toutes les données de toutes les tables utilisateur.
db_denydatawriterLes 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_denydatareaderLes 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.

Les autorisations accordées aux rôles de base de données fixe ne peuvent pas être modifiées. La figure suivante montre les autorisations accordées aux rôles de base de données fixe :

fixed_database_role_permissions

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 de 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 contenus dans MASTER peuvent également être ajoutés à ces rôles.

Nom du rôleDescription
dbmanagerPermet 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 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. 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.
loginmanagerPeut créer et supprimer des connexions dans la base de données MASTER virtuelle.
System_CAPS_ICON_note.jpg Remarque

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 SQL et SQL Data Warehouse sans avoir besoin d’être membres de tous les rôles. Pour plus d’informations, voir Authentification et autorisation de base de données SQL : octroi de l’accès.

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 msdbDescription
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 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 Data Collection.
PolicyAdministratorRoleLes 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_monitorCréé 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.
System_CAPS_ICON_important.jpg 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è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 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 Services , configurez les travaux de SQL 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 .

S’applique à : SQL Server à partir de SQL Server vNext

Quand vous installez R Services, vous disposez de rôles de base de données supplémentaires pour la gestion des packages. Pour plus d’informations, consultez Gestion des packages R pour SQL Server.

Nom du rôleDescription
rpkgs-usersPermet aux utilisateurs d’employer tous les packages partagés qui ont été installés par des membres du rôle rpkgs-shared.
rpkgs-privateFournit l’accès aux packages partagés avec les mêmes autorisations que le rôle rpkgs-users. Les membres de ce rôle peuvent également installer, supprimer et utiliser des packages à étendue privée.
rpkgs-sharedFournit les mêmes autorisations que le rôle rpkgs-private. Les utilisateurs membres de ce rôle peuvent également installer ou supprimer des packages partagés.

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éTypeDescription
sp_helpdbfixedrole (Transact-SQL)MétadonnéesRetourne une liste des rôles de base de données fixes.
sp_dbfixedrolepermission (Transact-SQL)MétadonnéesAffiche les autorisations d'un rôle de base de données fixe.
sp_helprole (Transact-SQL)MétadonnéesRenvoie les informations concernant les rôles de la base de données active.
sp_helprolemember (Transact-SQL)MétadonnéesRetourne des informations sur les membres d'un rôle dans la base de données actuelle.
sys.database_role_members (Transact-SQL)MétadonnéesRetourne une ligne pour chaque membre de chaque rôle de base de données.
IS_MEMBER (Transact-SQL)MétadonnéesIndique 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)CommandCrée un rôle de base de données dans la base de données active.
ALTER ROLE (Transact-SQL)CommandModifie le nom ou l’appartenance à un rôle de base de données.
DROP ROLE (Transact-SQL)CommandSupprime un rôle de la base de données.
sp_addrole (Transact-SQL)CommandCrée un rôle de base de données dans la base de données active.
sp_droprole (Transact-SQL)CommandSupprime un rôle de base de données de la base de données actuelle.
sp_addrolemember (Transact-SQL)CommandAjoute 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 sauf Parallel Data Warehouse doivent utiliser ALTER ROLE à la place.
sp_droprolemember (Transact-SQL)CommandSupprime un compte de sécurité d'un rôle SQL Server dans la base de données actuelle. Toutes les plateformes sauf Parallel Data Warehouse doivent utiliser ALTER ROLE à la place.
GRANTPermissionsAjoute l’autorisation à un rôle.
DENYPermissionsRefuse une autorisation à un rôle.
REVOKEPermissionsSupprime des autorisations accordées ou refusées antérieurement.

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. Les utilisateurs de base de données ne peuvent pas être supprimés du rôle public.

Affichages catalogue de sécurité (Transact-SQL)

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

Fonctions de sécurité (Transact-SQL)

Sécurisation de SQL Server

sp_helprotect (Transact-SQL)

Ajouts de la communauté

AJOUTER
Afficher: