SETUSER (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Permite que um membro da função de servidor fixa sysadmin ou o proprietário do banco de dados represente outro usuário.
Importante
SETUSER é incluído somente para compatibilidade com versões anteriores. SETUSER pode não ter suporte em uma versão futura do SQL Server. Recomendamos o uso de EXECUTE AS.
Convenções de sintaxe de Transact-SQL
Sintaxe
SETUSER [ 'username' [ WITH NORESET ] ]
Argumentos
' username '
É o nome de um usuário do Windows ou do SQL Server no banco de dados atual que é representado. Quando username não é especificado, a identidade original do administrador do sistema ou do proprietário do banco de dados que representa o usuário é redefinida.
WITH NORESET
Especifica que as instruções SETUSER seguintes (sem nenhum username especificado) não devem redefinir a identidade do usuário como administrador do sistema ou proprietário do banco de dados.
Comentários
SETUSER pode ser usado por um membro da função de servidor fixa sysadmin ou o proprietário de um banco de dados para adotar a identidade de outro usuário e testar suas permissões. A associação à função de banco de dados fixa db_owner não é suficiente.
Use SETUSER somente com usuários do SQL Server. SETUSER não tem suporte com usuários de Windows. Quando SETUSER é usado para assumir a identidade de outro usuário, todo objeto que o usuário da representação cria é de propriedade do usuário representado. Por exemplo, se o proprietário do banco de dados assumir a identidade do usuário Marina e criar uma tabela chamada orders, a tabela orders será de propriedade de Marina, e 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 logon novamente para restabelecer seus próprios direitos.
Permissões
Exige associação à função de servidor fixa sysadmin 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;
Consulte Também
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)