Partager via


CREATE ROLE (Transact-SQL)

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

S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

CREATE ROLE role_name [ AUTHORIZATION owner_name ]

Arguments

  • role_name
    Nom du rôle à créer.

  • AUTHORIZATION owner_name
    Utilisateur ou rôle de base de données qui doit posséder le nouveau rôle. Si aucun utilisateur n'est spécifié, le rôle appartient à l'utilisateur qui exécute CREATE ROLE.

Notes

Les rôles sont des éléments sécurisables au niveau base de données. Lorsque vous avez créé un rôle, configurez les autorisations au niveau base de données à l'aide des instructions GRANT, DENY et REVOKE. Pour ajouter des membres à un rôle de base de données, utilisez ALTER ROLE (Transact-SQL). Pour plus d'informations, consultez Rôles au niveau de la base de données.

Les rôles de base de données sont visibles dans les affichages catalogue sys.database_role_members et sys.database_principals.

Avertissement

Avec l'arrivée de SQL Server 2005, le comportement des schémas a changé. Ainsi, le code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut ne plus renvoyer des résultats corrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Dans ces bases de données, vous devez utiliser les nouveaux affichages catalogue. Les nouveaux affichages catalogue tiennent compte de la séparation des principaux et des schémas introduite dans SQL Server 2005 Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Autorisations

Requiert l'autorisation CREATE ROLE sur la base de données ou l'appartenance au rôle de base de données fixe db_securityadmin. Lorsque vous utilisez l'option AUTHORIZATION, les autorisations suivantes sont également requises :

  • Pour affecter la propriété d'un rôle à un autre utilisateur, l'autorisation IMPERSONATE est requise pour cet utilisateur.

  • Pour affecter la propriété d'un rôle à un autre rôle, l'appartenance au rôle destinataire ou l'autorisation ALTER est requise pour ce rôle.

  • Pour affecter la propriété d'un rôle à un rôle d'application, l'autorisation ALTER est requise pour ce rôle d'application.

Exemples

A.Création d'un rôle de base de données possédé par un utilisateur de base de données

Le code exemple suivant crée le rôle de base de données buyers possédé par l'utilisateur BenMiller.

USE AdventureWorks2012;
CREATE ROLE buyers AUTHORIZATION BenMiller;
GO

B.Création d'un rôle de base de données possédé par un rôle de base de données fixe

Le code exemple suivant crée le rôle de base de données auditors possédé par le rôle de base de données fixe db_securityadmin.

USE AdventureWorks2012;
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO

Voir aussi

Référence

ALTER ROLE (Transact-SQL)

DROP ROLE (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_addrolemember (Transact-SQL)

sys.database_role_members (Transact-SQL)

sys.database_principals (Transact-SQL)

Concepts

Principaux (moteur de base de données)