sp_addrolemember (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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) or 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.
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 ouALTER
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'