Compartilhar via


SETUSER (Transact-SQL)

Permite que um membro da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner represente outro usuário.

Observação importanteImportante

SETUSER é incluído somente para compatibilidade com versões anteriores. SETUSER pode não ter suporte em uma versão futura do SQL Server. Em seu lugar, recomendamos o uso de EXECUTE AS.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

SETUSER [ 'username' [ WITH NORESET ] ] 

Argumentos

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

  • WITH NORESET
    Especifica que as instruções SETUSER subseqüentes (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 da função de banco de dados fixa db_owner para adotar a identidade de outro usuário e testar as suas permissões.

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 Margaret e criar uma tabela chamada pedidos, a tabela pedidos será de propriedade de Margaret, 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çãoObservaçã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

Requer associação na função de servidor fixa sysadmin ou na função de banco de dados fixa db_owner.

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
SETUSER