Compartilhar via


sp_addrolemember (Transact-SQL)

Adiciona um usuário de banco de dados, uma função de banco de dados, o logon do Windows ou um grupo do Windows em uma função de banco de dados no banco de dados atual.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @rolename= ] 'role'
    É o nome da função de banco de dados no banco de dados atual. role é um sysname, sem nenhum padrão.

  • [ @membername= ] 'security_account'
    É a conta de segurança a ser adicionada à função. security_account é sysname, sem nenhum padrão. security_account pode ser um usuário de banco de dados, uma função de banco de dados, um logon do Windows ou um grupo do Windows.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

Um membro adicionado a uma função usando sp_addrolemember herda as permissões da função. Se o novo membro for uma entidade no nível do Windows sem um usuário de banco de dados correspondente, um usuário de banco de dados será criado, mas pode não ser totalmente mapeado para o logon. Sempre verifique se o logon existe e tem acesso ao banco de dados.

Uma função não pode ser incluída como um membro. Tais definições "circulares" não são válidas, mesmo quando a associação é implícita apenas indiretamente por uma ou mais associações intermediárias.

sp_addrolemember não pode adicionar uma função de banco de dados fixa, uma função de servidor fixa ou dbo a uma função. sp_addrolemember não pode ser executado em uma transação definida pelo usuário.

Use somente sp_addrolemember para adicionar um membro a uma função de banco de dados. Para adicionar um membro a uma função de servidor, use sp_addsrvrolemember (Transact-SQL).

Permissões

A adição de membros a funções de banco de dados definidas pelo usuário requer um dos seguintes:

  • Associação à função de banco de dados fixa db_securityadmin ou db_owner.

  • Associação na função que é proprietária da função.

  • Permissão ALTER ANY ROLE ou ALTER na função.

A adição de membros a funções de banco de dados fixas requer associação na função de banco de dados fixa db_owner.

Exemplos

A. Adicionando um logon do Windows

O exemplo a seguir adiciona o logon do Windows Contoso\Mary5 ao banco de dados AdventureWorks2008R2 como o usuário Mary5. O usuário Mary5 então é adicionado à função Production.

ObservaçãoObservação

Como Contoso\Mary5 é conhecido como o usuário de banco de dados Mary5 no banco de dados AdventureWorks2008R2, o nome de usuário Mary5 deve ser especificado. A instrução falhará a menos que um logon Contoso\Mary5 exista. Teste usando um logon de seu domínio.

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

B. Adicionando um usuário de banco de dados

O exemplo a seguir adiciona o usuário de banco de dados Mary5 à função de banco de dados Production no banco de dados atual.

EXEC sp_addrolemember 'Production', 'Mary5'