sp_addrolemember (Transact-SQL)
Adds a database user, database role, Windows login, or Windows group to a database role in the current database.
Important
|
|---|
|
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER ROLE instead. |
A member added to a role by using sp_addrolemember inherits the permissions of the role. If the new member is a Windows-level principal without a corresponding database user, a database user will be created but may not be fully mapped to the login. Always check that the login exists and has access to the database.
A role cannot include itself as a member. Such "circular" definitions are not valid, even when membership is only indirectly implied by one or more intermediate memberships.
sp_addrolemember cannot add a fixed database role, fixed server role, or dbo to a role. sp_addrolemember cannot be executed within a user-defined transaction.
Only use sp_addrolemember to add a member to a database role. To add a member to a server role, use sp_addsrvrolemember (Transact-SQL).
Adding members to flexible database roles requires one of the following:
-
Membership in the db_securityadmin or db_owner fixed database role.
-
Membership in the role that owns the role.
-
ALTER ANY ROLE permission or ALTER permission on the role.
Adding members to fixed database roles requires membership in the db_owner fixed database role.
A. Adding a Windows login
The following example adds the Windows login Contoso\Mary5 to the AdventureWorks2012 database as user Mary5. The user Mary5 is then added to the Production role.
Note
|
|---|
|
Because Contoso\Mary5 is known as the database user Mary5 in the AdventureWorks2012 database, the user name Mary5 must be specified. The statement will fail unless a Contoso\Mary5 login exists. Test by using a login from your domain. |
USE AdventureWorks2012; GO CREATE USER Mary5 FOR LOGIN [Contoso\Mary5] ; GO EXEC sp_addrolemember 'Production', 'Mary5'
B. Adding a database user
The following example adds the database user Mary5 to the Production database role in the current database.
EXEC sp_addrolemember 'Production', 'Mary5'
Important