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 retroativa. SETUSERpode não ser suportado numa futura versão 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 subsequentes SETUSER (sem nome de utilizador especificado) não devem redefinir a identidade do utilizador para administrador do sistema ou proprietário da base de dados.

Comentários

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

Uso SETUSER apenas com utilizadores do SQL Server. SETUSERnão é suportado por utilizadores de Windows. Quando SETUSER foi usado para assumir a identidade de outro utilizador, quaisquer objetos criados pelo utilizador que se faz passar são propriedade do utilizador que está a ser personificado. 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 SETUSER declaração seja emitida ou até que a base de dados atual seja alterada com a instrução USE.

Observação

Se SETUSER for usado WITH NORESET, o proprietário da base de dados ou administrador do sistema deve sair e depois iniciar sessão novamente para restabelecer os 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. Ao usar SETUSER, o proprietário da base de dados faz-se mary passar por alguém para conceder acesso ao utilizador joe à computer_types tabela e depois redefine a 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)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USAR (Transact-SQL)