sp_addrolemember (Transact-SQL)
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
PDW (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
Comentários
Enviar e exibir comentários de