sp_addrole (Transact-SQL)

S'applique à : SQL Server

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

Important

sp_addrole est inclus pour la compatibilité avec les versions antérieures de SQL Server et peut ne pas être pris en charge dans une version ultérieure. Utilisez CREATE ROLE à la place.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_addrole
    [ @rolename = ] N'rolename'
    [ , [ @ownername = ] N'ownername' ]
[ ; ]

Arguments

[ @rolename = ] N’rolename'

Nom du nouveau rôle de base de données. @rolename est sysname, sans valeur par défaut. @rolename doit être un identificateur valide et ne doit pas déjà exister dans la base de données active.

[ @ownername = ] N’ownername'

Propriétaire du nouveau rôle de base de données. @ownername est sysname, avec une valeur par défaut de l’utilisateur en cours d’exécution. @ownername doit être un utilisateur de base de données ou un rôle de base de données dans la base de données active.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

Les noms des rôles de base de données SQL Server peuvent contenir de 1 à 128 caractères, y compris des lettres, des symboles et des chiffres. Les noms des rôles de base de données ne peuvent pas contenir de caractère de barre oblique inverse (\), être NULLou une chaîne vide ('').

Après avoir ajouté un rôle de base de données, utilisez sp_addrolemember pour ajouter des principaux au rôle. Lorsque GRANT, DENYou REVOKE des instructions sont utilisées pour appliquer des autorisations au rôle de base de données, les membres du rôle de base de données héritent de ces autorisations comme si les autorisations étaient appliquées directement à leurs comptes.

Remarque

Impossible de créer de nouveaux rôles serveur. Les rôles ne peuvent être créés qu'au niveau de la base de données.

sp_addrole ne peut pas être utilisé à l’intérieur d’une transaction définie par l’utilisateur.

autorisations

Requiert l'autorisation CREATE ROLE sur la base de données. Si vous créez un schéma, nécessite CREATE SCHEMA sur la base de données. Si @ownername est spécifié en tant qu’utilisateur ou groupe, nécessite IMPERSONATE cet utilisateur ou ce groupe. Si @ownername est spécifié en tant que rôle, nécessite ALTER une autorisation sur ce rôle ou sur un membre de ce rôle. Si le propriétaire est spécifié en tant que rôle d’application, nécessite ALTER une autorisation sur ce rôle d’application.

Exemples

Le code exemple suivant ajoute le nouveau rôle Managers à la base de données active.

EXEC sp_addrole 'Managers';