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

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Em vez disso, use ALTER ROLE.

Ícone de vínculo de tópico Convenções da 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 é sysname, sem padrão.

  • [ @membername= ] 'security_account'
    É a conta de segurança que está sendo adicionada à função. security_account é sysname, sem padrão. security_account pode ser um usuário do 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, 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 flexíveis requer um dos seguintes:

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

  • Associação na função 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 AdventureWorks2012 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 AdventureWorks2012, 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 AdventureWorks2012;
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'

Consulte também

Referência

Procedimentos armazenados de segurança (Transact-SQL)

sp_addsrvrolemember (Transact-SQL)

sp_droprolemember (Transact-SQL)

sp_grantdbaccess (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)

Funções de nível de banco de dados