sp_addrolemember (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez à la place ALTER ROLE .

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_addrolemember
    [ @rolename = ] N'rolename'
    , [ @membername = ] N'membername'
[ ; ]

Notes

Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Arguments

[ @rolename = ] N’rolename'

Nom du rôle de base de données dans la base de données active. @rolename est sysname, sans valeur par défaut.

[ @membername = ] N’membername'

Compte de sécurité ajouté au rôle. @membername est sysname, sans valeur par défaut. @membername peut être un utilisateur de base de données, un rôle de base de données, une connexion Windows 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 l’utilisation sp_addrolemember hérite des autorisations du rôle. Si le nouveau membre est un principal de 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 en tant que membre. Ces définitions circulaires ne sont pas valides, même si l’appartenance est implicitement implicite 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 dbo à un rôle.

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

Autorisations

L’ajout de membres à des rôles de base de données flexibles nécessite l’une des autorisations suivantes :

  • Appartenance au rôle de base de données fixe db_securityadmin ou db_owner .

  • Appartenance au rôle qui détient le rôle.

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

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

Exemples

R. Ajouter une connexion Windows

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

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

USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO

B. Ajouter 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';

Exemples : Analytics Platform System (PDW)

C. Ajouter une connexion Windows

L’exemple suivant ajoute la connexion LoginMary à la AdventureWorks2022 base de données en tant qu’utilisateur UserMary. L'utilisateur UserMary est ensuite ajouté au rôle Production.

Remarque

Étant donné que la connexion LoginMary est appelée utilisateur UserMary de base de données dans la AdventureWorks2022 base de données, le nom UserMary d’utilisateur doit être spécifié. L'instruction échoue à moins qu'un nom de connexion Mary5 n'existe. Les connexions et les utilisateurs ont généralement le même nom. Cet exemple utilise différents noms pour différencier les actions affectant la connexion et l’utilisateur.

-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXEC sp_addrolemember 'Production', 'UserMary'

D. Ajouter un utilisateur de base de données

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

EXEC sp_addrolemember 'Production', 'UserMary'