sp_addrolemember (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

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

Importante

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 .

Convenções de sintaxe de Transact-SQL

Syntax

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

Observação

Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Argumentos

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

@membername= [ ] 'security_account'
A conta de segurança está sendo adicionada à função. security_account é um sysname, sem padrão. security_account pode ser um usuário de banco de dados, função de banco de dados, logon do Windows ou 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 de segurança de 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. Verifique sempre se o login existe e se tem acesso ao banco de dados.

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

sp_addrolemember não é possível adicionar uma função de banco de dados fixa, uma função de servidor fixa ou um dbo a uma função.

Use apenas 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

Adicionar 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 que possui a função.

  • ALTERE QUALQUER FUNÇÃO permissão ou permissão ALTER na função.

Adicionar membros a funções de banco de dados fixas requer associação à função de banco de dados fixa db_owner.

Exemplos

R. Adicionando um logon do Windows

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

Observação

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

USE AdventureWorks2022;  
GO  
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5] ;  
GO  

B. Adicionando um usuário de banco de dados

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

EXEC sp_addrolemember 'Production', 'Mary5';  

Exemplos: PDW (Analytics Platform System)

C. Adicionando um logon do Windows

O exemplo a seguir adiciona o logon LoginMary ao AdventureWorks2022 banco de dados como usuário UserMary. O usuário UserMary é então adicionado à Production função.

Observação

Como o logon LoginMary é conhecido como o usuário do banco de dados no AdventureWorks2022 banco de dados, o nome UserMary de usuário UserMary deve ser especificado. A instrução falhará, a menos que exista um Mary5 login. Logins e usuários geralmente têm o mesmo nome. Este exemplo usa nomes diferentes para diferenciar as ações que afetam o logon versus o usuário.

-- Uses AdventureWorks2022
  
CREATE USER UserMary FOR LOGIN LoginMary ;  
GO  
EXEC sp_addrolemember 'Production', 'UserMary'  

D. Adicionando um usuário de banco de dados

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

EXEC sp_addrolemember 'Production', 'UserMary'  

Veja também

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