Partilhar via


SETUSER (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL Managed Instance

Permite que um membro do sysadmin função de servidor fixa ou o proprietário de um banco de dados se faça passar por outro usuário.

Importante

SETUSER está incluído apenas para compatibilidade com versões anteriores. SETUSER pode não ter suporte em uma versão futura do SQL Server. Recomendamos que você use EXECUTE AS em vez disso.

Transact-SQL convenções de sintaxe

Sintaxe

  
SETUSER [ 'username' [ WITH NORESET ] ]   

Argumentos

'nome de utilizador'
É o nome de um usuário do SQL Server ou do Windows no banco de dados atual que é representado. Quando nome de usuário não é especificado, a identidade original do administrador do sistema ou proprietário do banco de dados que representa o usuário é redefinida.

COM NORESET
Especifica que as instruções SETUSER subsequentes (sem nome de usuário especificado) não devem redefinir a identidade do usuário para administrador do sistema ou proprietário do banco de dados.

Comentários

SETUSER pode ser usado por um membro do sysadmin função de servidor fixa ou pelo proprietário de um banco de dados para adotar a identidade de outro usuário para testar as permissões do outro usuário. A associação à função de banco de dados fixa db_owner não é suficiente.

Use apenas SETUSER com usuários do SQL Server. SETUSER não é suportado com usuários do Windows. Quando SETUSER foi usado para assumir a identidade de outro usuário, todos os objetos que o usuário representativo cria são de propriedade do usuário que está sendo representado. Por exemplo, se o proprietário do banco de dados assume a identidade do usuário Margaret e cria uma tabela chamada ordens, a ordens tabela é de propriedade de Margaret, não do administrador do sistema.

SETUSER permanece em vigor até que outra instrução SETUSER seja emitida ou até que o banco de dados atual seja alterado com a instrução USE.

Observação

Se SETUSER WITH NORESET for usado, o proprietário do banco de dados ou administrador do sistema deverá fazer logoff e, em seguida, fazer logon novamente para restabelecer seus próprios direitos.

Permissões

Requer associação ao sysadmin função de servidor fixa ou deve ser o proprietário do banco de dados. A associação à função de banco de dados fixa db_owner não é suficiente

Exemplos

O exemplo a seguir mostra como o proprietário do banco de dados pode adotar a identidade de outro usuário. O usuário mary criou uma tabela chamada computer_types. Usando SETUSER, o proprietário do banco de dados representa mary para conceder ao usuário joe acesso à tabela computer_types e, em seguida, redefine sua própria identidade.

SETUSER 'mary';  
GO  
GRANT SELECT ON computer_types TO joe;  
GO  
--To revert to the original user  
SETUSER;  

Ver também

DENY (Transact-SQL)
SUBVENÇÃO (Transact-SQL)
REVOGAR (Transact-SQL)
USE (Transact-SQL)