Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Istanza gestita di SQL di Azure
Consente a un membro del ruolo predefinito del server sysadmin o al proprietario di un database di rappresentare un altro utente.
Importante
SETUSER è incluso solo per compatibilità retroattiva. SETUSERpotrebbe non essere supportato in una futura versione di SQL Server. È consigliabile utilizzare EXECUTE AS in alternativa.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
SETUSER [ 'username' [ WITH NORESET ] ]
Argomenti
'username'
Il nome di un utente di SQL Server o di Windows 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.
CON NORESET
Specifica che le istruzioni successive SETUSER (senza nome utente specificato) non dovrebbero reimpostare l'identità utente a amministratore di sistema o proprietario del database.
Osservazioni:
SETUSER può essere utilizzato da un membro del ruolo fisso di sysadmin o dal proprietario di un database per adottare l'identità di un altro utente e testare i permessi dell'altro utente. L'appartenenza al ruolo predefinito del database db_owner non è sufficiente.
Da usare SETUSER solo con utenti di SQL Server. SETUSERnon è supportata dagli utenti Windows. Quando SETUSER è stato usato per assumere l'identità di un altro utente, qualsiasi oggetto creato dall'utente che si impersonerà è di proprietà dell'utente impersonato. Se ad esempio il proprietario del database assume l'identità dell'utente Margaret e crea la tabella orders, la tabella orders è di proprietà dell'utente Margaret e non dell'amministratore del sistema.
SETUSER rimane in funzione fino a quando non viene emessa un'altra SETUSER dichiarazione o fino a quando il database attuale non viene modificato con l'istruzione USE.
Nota
Se SETUSER viene utilizzato WITH NORESET, il proprietario del database o l'amministratore di sistema deve disconnettersi e poi tornare a effettuare il login per ristabilire i propri diritti.
Autorizzazioni
È richiesta l'appartenenza al ruolo predefinito del server sysadmin o la proprietà del database. L'appartenenza al ruolo predefinito del database db_owner non è sufficiente.
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. Usando SETUSER, il proprietario del database si mary impersonerebbe per concedere all'utente joe l'accesso alla computer_types tabella e poi resettò la propria identità.
SETUSER 'mary';
GO
GRANT SELECT ON computer_types TO joe;
GO
--To revert to the original user
SETUSER;
Vedi anche
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USA (Transact-SQL)