SETUSER (Transact-SQL)

Consente a un membro del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner di rappresentare un altro utente.

ms186297.note(it-it,SQL.90).gifImportante:
SETUSER è disponibile in Microsoft SQL Server 2005 solo per compatibilità con le versioni precedenti in quanto nelle future versioni di SQL Server potrebbe non essere più supportata. È invece consigliabile utilizzare EXECUTE AS.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

SETUSER [ 'username' [ WITH NORESET ] ] 

Argomenti

'username'

Nome di un utente di SQL Server o Microsoft nel database corrente che viene rappresentato. Se username viene omesso, viene ripristinata l'identità originale dell'amministratore di sistema o del proprietario del database che rappresenta l'utente.

WITH NORESET

Specifica che le istruzioni SETUSER successive (prive di argomento username) non ripristinano l'identità dell'utente sull'amministratore di sistema o sul proprietario del database.

Osservazioni

L'istruzione SETUSER consente ai membri del ruolo predefinito del server sysadmin e al ruolo predefinito del database db_owner di adottare l'identità di un altro utente in modo da verificarne le autorizzazioni.

Utilizzare l'istruzione SETUSER solo per utenti di SQL Server, in quanto non è supportata per gli utenti di Windows. Dopo l'esecuzione di SETUSER per assumere l'identità di un altro utente, tutti gli oggetti che vengono creati sono di proprietà dell'utente rappresentato. Se, ad esempio, il proprietario del database assume l'identità dell'utente Margaret e crea la tabella orders, tale tabella è di proprietà dell'utente Margaret, non dell'amministratore del sistema.

L'istruzione SETUSER rimane valida fino a quando non viene eseguita un'altra istruzione SETUSER o il database corrente viene modificato tramite l'istruzione USE.

[!NOTA] Se il proprietario del database o l'amministratore del sistema utilizza l'istruzione SETUSER WITH NORESET, per ristabilire le proprie autorizzazioni deve disconnettersi e quindi riconnettersi.

Autorizzazioni

È richiesta l'appartenenza al ruolo predefinito del server sysadmin o al ruolo predefinito del database db_owner.

Esempi

Nell'esempio seguente viene illustrato come il proprietario del database può adottare l'identità di un altro utente. L'utente mary ha creato una tabella denominata computer_types. Tramite l'istruzione SETUSER, il proprietario del database rappresenta mary per concedere all'utente joe l'accesso alla tabella computer_types e quindi ripristina la propria identità.

SETUSER 'mary'
GO
GRANT SELECT ON computer_types TO joe
GO
SETUSER

Vedere anche

Riferimento

DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005