sp_addrolemember (Transact-SQL)

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

Icône Lien de rubriqueConventions de la syntaxe Transact-SQL

Syntaxe

sp_addrolemember [ @rolename = ] 'role',
    [ @membername = ] 'security_account'

Arguments

  • [ @rolename= ] 'role'
    Nom du rôle de base de données dans la base de données active. L'argument role est de type sysname sans valeur par défaut.

  • [ @membername= ] 'security_account'
    Compte de sécurité ajouté au rôle. security_account est de type sysname sans valeur par défaut. security_account peut être un utilisateur ou un rôle de base de données, une connexion ou un groupe Windows.

Valeurs des codes de retour

0 (réussite) ou 1 (échec)

Notes

Un membre ajouté à un rôle à l'aide de sp_addrolemember hérite des autorisations de ce rôle. Si le nouveau membre est un principal au niveau Windows sans utilisateur de base de données correspondant, un utilisateur de base de données est créé, mais peut ne pas être entièrement mappé à la connexion. Vérifiez toujours que la connexion existe et a accès à la base de données.

Un rôle ne peut pas s'inclure lui-même en tant que membre. Des définitions « circulaires » de ce type ne sont pas valides, même si l'appartenance est seulement impliquée indirectement par une ou plusieurs appartenances intermédiaires.

sp_addrolemember ne peut pas ajouter un rôle de base de données fixe, un rôle serveur fixe ou un propriétaire de base de données (dbo) à un rôle. Il n'est pas possible d'exécuter sp_addrolemember dans une transaction définie par l'utilisateur.

Utilisez uniquement sp_addrolemember pour ajouter un membre à un rôle de base de données. Pour ajouter un membre à un rôle de serveur, utilisez sp_addsrvrolemember (Transact-SQL).

Autorisations

L'ajout de membres à des rôles de base de données définis par l'utilisateur nécessite l'un des éléments suivants :

  • Nécessite l'appartenance au rôle de base de données fixe db_securityadmin ou db_owner.

  • L'appartenance au rôle qui détient le rôle

  • ALTER ANY ROLE ou ALTER sur le rôle.

L'ajout de membres à des rôles de base de données fixe nécessite l'appartenance au rôle de base de données fixe db_owner.

Exemples

A. Ajout d'une connexion Windows

L'exemple suivant ajoute la connexion Windows Contoso\Mary5 à la base de données AdventureWorks2008R2 en tant qu'utilisateur Mary5. L'utilisateur Mary5 est ensuite ajouté au rôle Production.

Notes

Comme Contoso\Mary5 est connu comme l'utilisateur de base de données Mary5 dans la base de données AdventureWorks2008R2, le nom d'utilisateur Mary5 doit être spécifié. L'instruction échoue à moins qu'une connexion Contoso\Mary5 n'existe. Effectuez un test en utilisant une connexion à partir de votre domaine.

USE AdventureWorks2008R2;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5] ;
GO
EXEC sp_addrolemember 'Production', 'Mary5'

B. Ajout d'un utilisateur de base de données

L'exemple suivant ajoute l'utilisateur de base de données Mary5 au rôle de base de données Production dans la base de données actuelle.

EXEC sp_addrolemember 'Production', 'Mary5'