Dela via


SETUSER (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Tillåter att en medlem i sysadmin fast serverroll eller ägaren av en databas för att personifiera en annan användare.

Viktig

SETUSER ingår endast för bakåtkompatibilitet. SETUSER kanske inte stöds i en framtida version av SQL Server. Vi rekommenderar att du använder KÖR SOM- i stället.

Transact-SQL syntaxkonventioner

Syntax

  
SETUSER [ 'username' [ WITH NORESET ] ]   

Argument

användarnamn
Är namnet på en SQL Server- eller Windows-användare i den aktuella databasen som personifieras. När användarnamn inte anges återställs den ursprungliga identiteten för systemadministratören eller databasägaren som personifierar användaren.

MED NORESET
Anger att efterföljande SETUSER-instruktioner (utan angiven användarnamn) inte ska återställa användaridentiteten till systemadministratören eller databasägaren.

Anmärkningar

SETUSER kan användas av en medlem i sysadmin fast serverroll eller ägaren av en databas för att anta identiteten för en annan användare för att testa den andra användarens behörigheter. Medlemskap i den db_owner fasta databasrollen räcker inte.

Använd endast SETUSER med SQL Server-användare. SETUSER stöds inte med Windows-användare. När SETUSER har använts för att anta identiteten för en annan användare ägs alla objekt som den personifierande användaren skapar av den användare som personifieras. Om databasägaren till exempel antar identiteten för användaren Margaret och skapar en tabell med namnet orderägs order tabell av Margaret, inte systemadministratören.

SETUSER gäller tills en annan SETUSER-instruktion utfärdas eller tills den aktuella databasen har ändrats med USE-instruktionen.

Not

Om SETUSER WITH NORESET används måste databasägaren eller systemadministratören logga ut och sedan logga in igen för att återupprätta sina egna rättigheter.

Behörigheter

Kräver medlemskap i sysadmin fast serverroll eller måste vara ägare till databasen. Medlemskap i den db_owner fasta databasrollen räcker inte

Exempel

I följande exempel visas hur databasägaren kan använda en annan användares identitet. Användaren mary har skapat en tabell med namnet computer_types. Genom att använda SETUSER personifierar databasägaren mary att ge användaren joe åtkomst till tabellen computer_types och återställer sedan sin egen identitet.

SETUSER 'mary';  
GO  
GRANT SELECT ON computer_types TO joe;  
GO  
--To revert to the original user  
SETUSER;  

Se även

NEKA (Transact-SQL)
GRANT (Transact-SQL)
ÅTERKALLA (Transact-SQL)
USE (Transact-SQL)