Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
do Azure
Instância Gerenciada SQL do Azure
do Azure Synapse Analytics
do Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Adiciona um usuário de banco de dados, função de banco de dados, logon do Windows ou 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 SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Usa ALTERAR PAPEL em vez disso.
Transact-SQL convenções de sintaxe
Sintaxe
sp_addrolemember
[ @rolename = ] N'rolename'
, [ @membername = ] N'membername'
[ ; ]
Observação
Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
Arguments
[ @rolename = ] N'nome do papel'
O nome do papel da base de dados na base de dados atual. @rolename é sysname, sem padrão.
[ @membername = ] N'nome-lembro'
A conta de segurança a ser adicionada ao cargo. @membername é sysname, sem padrão. @membername pode ser um utilizador de base de dados, função de base de dados, login do Windows ou grupo do Windows.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Observações
Um membro adicionado a um papel ao usar sp_addrolemember herda as permissões do papel. Se o novo membro for um principal ao nível do Windows sem um utilizador correspondente da base de dados, é criado um utilizador da base de dados, mas pode não estar totalmente mapeado para o login. Verifique sempre se o login existe e tem acesso à base de dados.
Um papel não pode incluir-se como membro. Tais definições circulares não são válidas, mesmo quando a pertença é indiretamente implícita por uma ou mais pertenças intermédias.
sp_addrolemember Não é possível adicionar um papel fixo de base de dados, função fixa de servidor ou DBO a um papel.
Uso sp_addrolemember apenas para adicionar um membro a uma função de base de dados. Para adicionar um membro a um papel de servidor, use sp_addsrvrolemember.
Permissions
Adicionar membros a funções flexíveis em bases de dados requer uma das seguintes permissões:
A pertença à db_securityadmin ou à db_owner função fixa de base de dados.
A pertença à função que detém a função.
ALTER ANY ROLEPermissão ouALTERpermissão para o cargo.
Adicionar membros a funções fixas de bases de dados requer a pertença ao papel db_owner de base de dados fixa.
Examples
A. Adicionar um login Windows
O exemplo seguinte adiciona o login Contoso\Mary5 do Windows à AdventureWorks2025 base de dados como utilizador Mary5. O utilizador Mary5 é então adicionado à Production função.
Como Contoso\Mary5 é conhecido como o utilizador Mary5 da base de dados na AdventureWorks2025 base de dados, o nome Mary5 de utilizador deve ser especificado. A instrução falha a menos que exista um Contoso\Mary5 login. Testa usando um login do teu domínio.
USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO
B. Adicionar um utilizador de base de dados
O exemplo seguinte adiciona o utilizador Mary5 da base de dados ao Production papel de base de dados na base de dados atual.
EXECUTE sp_addrolemember 'Production', 'Mary5';
Exemplos: Analytics Platform System (PDW)
C. Adicionar um login Windows
O exemplo seguinte adiciona o login LoginMary à AdventureWorks2025 base de dados como utilizador UserMary. O utilizador UserMary é então adicionado à Production função.
Observação
Como o login LoginMary é conhecido como o utilizador UserMary da base de dados na AdventureWorks2025 base de dados, o nome UserMary de utilizador deve ser especificado. A instrução falha a menos que exista um Mary5 login. Os logins e os utilizadores costumam ter o mesmo nome. Este exemplo utiliza nomes diferentes para diferenciar as ações que afetam o login das do utilizador.
-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXECUTE sp_addrolemember 'Production', 'UserMary';
D. Adicionar um utilizador de base de dados
O exemplo seguinte adiciona o utilizador UserMary da base de dados ao Production papel de base de dados na base de dados atual.
EXECUTE sp_addrolemember 'Production', 'UserMary';