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 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 (succès) 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 une entité de sécurité au niveau Windows sans utilisateur de base de données correspondant, un utilisateur de base de données est créé.

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 dbo à un rôle. Avant le SQL Server Service Pack 1 sp_addrolemember ne peut pas être exécuté 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).

N'ajoutez pas de rôles flexibles comme membres de rôles fixes. Cela pourrait activer une élévation de privilèges involontaire.

Autorisations

L'ajout de membres à des rôles de base de données flexibles requiert l'un des éléments suivants :

  • l'appartenance au rôle de base de données fixe db_owner ;
  • l'appartenance au rôle de base de données fixe db_securityadmin ;
  • l'appartenance au rôle propriétaire du rôle ;
  • l'autorisation ALTER sur le rôle.

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

Exemples

A. Ajout d'une connexion Windows 

L'exemple de code suivant ajoute la connexion Windows Contoso\Mary5

à la base de données AdventureWorks en tant qu'utilisateur Mary5. L'utilisateur Mary5 est ensuite ajouté au rôle Production.

ms187750.note(fr-fr,SQL.90).gifRemarque :
Comme Contoso\Mary5 porte le nom d'utilisateur de base de données Mary5 dans la base de données AdventureWorks, le nom d'utilisateur Mary5 doit être spécifié en utilisant sp_addrolemember.
USE AdventureWorks
GO
EXEC sp_grantdbaccess 'Contoso\Mary5', 'Mary5'
GO
EXEC sp_addrolemember 'Production', 'Mary5'

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

L'exemple de code 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 active.

EXEC sp_addrolemember 'Production', 'Mary5'

Voir aussi

Référence

Procédures stockées liées à la sécurité (Transact-SQL)
sp_addsrvrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
Procédures stockées système (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005