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 do 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 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 flexíveis requer um dos seguintes:

  • Associação na função de banco de dados fixa db_owner.

  • Associação na função de banco de dados fixa db_securityadmin.

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

  • Permissão 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 AdventureWorks 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 AdventureWorks, 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 AdventureWorks
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'