Delen via


SETUSER (Transact-SQL)

van toepassing op:SQL ServerAzure SQL Managed Instance

Hiermee kan een lid van de sysadmin vaste serverfunctie of de eigenaar van een database een andere gebruiker imiteren.

Belangrijk

SETUSER is alleen opgenomen voor compatibiliteit met eerdere versies. SETUSER wordt mogelijk niet ondersteund in een toekomstige versie van SQL Server. U wordt aangeraden in plaats daarvan EXECUTE AS- te gebruiken.

Transact-SQL syntaxisconventies

Syntaxis

  
SETUSER [ 'username' [ WITH NORESET ] ]   

Argumenten

'gebruikersnaam'
Is de naam van een SQL Server- of Windows-gebruiker in de huidige database die wordt geïmiteerd. Wanneer gebruikersnaam niet is opgegeven, wordt de oorspronkelijke identiteit van de systeembeheerder of database-eigenaar die de gebruiker imiteert, opnieuw ingesteld.

MET NORESET
Hiermee geeft u op dat volgende SETUSER-instructies (zonder opgegeven gebruikersnaam) de gebruikersidentiteit niet opnieuw mogen instellen op systeembeheerder of database-eigenaar.

Opmerkingen

SETUSER kan worden gebruikt door een lid van de sysadmin vaste serverfunctie of de eigenaar van een database om de identiteit van een andere gebruiker te gebruiken om de machtigingen van de andere gebruiker te testen. Lidmaatschap van de db_owner vaste databaserol is niet voldoende.

Gebruik SETUSER alleen met SQL Server-gebruikers. SETUSER wordt niet ondersteund voor Windows-gebruikers. Wanneer SETUSER is gebruikt om uit te gaan van de identiteit van een andere gebruiker, zijn alle objecten die door de imitatiegebruiker worden gemaakt eigendom van de gebruiker die wordt geïmiteerd. Als de eigenaar van de database bijvoorbeeld uitgaat van de identiteit van de gebruiker Margaret en een tabel maakt met de naam orders, is de orders tabel eigendom van Margaret, niet de systeembeheerder.

SETUSER blijft van kracht totdat een andere SETUSER-instructie wordt uitgegeven of totdat de huidige database wordt gewijzigd met de USE-instructie.

Notitie

Als SETUSER WITH NORESET wordt gebruikt, moet de database-eigenaar of systeembeheerder zich afmelden en vervolgens opnieuw aanmelden om hun eigen rechten opnieuw in te stellen.

Machtigingen

Vereist lidmaatschap van de sysadmin vaste serverfunctie of moet de eigenaar van de database zijn. Lidmaatschap van de db_owner vaste databaserol is niet voldoende

Voorbeelden

In het volgende voorbeeld ziet u hoe de eigenaar van de database de identiteit van een andere gebruiker kan overnemen. Gebruiker mary heeft een tabel gemaakt met de naam computer_types. Door SETUSER te gebruiken, imiteert de database-eigenaar mary om de gebruiker joe toegang te verlenen tot de computer_types-tabel en wordt vervolgens hun eigen identiteit opnieuw ingesteld.

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

Zie ook

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