Delen via


GEBRUIKER (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database in Microsoft Fabric

Maakt het mogelijk om een door het systeem geleverde waarde voor de gebruikersnaam van de huidige gebruiker in een tabel in te voegen wanneer er geen standaardwaarde is opgegeven.

Transact-SQL syntaxis-conventies

Syntaxis

USER  

Retourtypen

nvarchar(128)

Opmerkingen

USER biedt dezelfde functionaliteit als de USER_NAME systeemfunctie.

Gebruik USER met DEFAULT-beperkingen in de CREATE TABLE- of ALTER TABLE-instructies, of gebruik als een standaardfunctie.

De gebruiker geeft altijd de naam van de huidige context terug. Wanneer hij wordt aangeroepen na een EXECUTE AS-instructie, geeft USER de naam van de geïmpersoneerde context terug.

Als een Windows-principal toegang krijgt tot de database via lidmaatschap van een groep, geeft de USER de naam van de Windows-principal terug in plaats van de naam van de groep.

Voorbeelden

Eén. Gebruik van USER om de database gebruikersnaam terug te geven

Het volgende voorbeeld verklaart een variabele als char, kent de huidige waarde van USER toe, en drukt vervolgens de variabele af met een tekstbeschrijving.

DECLARE @usr CHAR(30)  
SET @usr = user  
SELECT 'The current user''s database username is: '+ @usr  
GO  

Hier is het resultatenoverzicht.

-----------------------------------------------------------------------  
The current user's database username is: dbo  
 
(1 row(s) affected)

B. Gebruik van USER met DEFAULT-beperkingen

Het volgende voorbeeld maakt een tabel aan door als DEFAULT constraint te gebruiken USER voor de verkoper van een salesrij.

USE AdventureWorks2022;  
GO  
CREATE TABLE inventory22  
(  
 part_id INT IDENTITY(100, 1) NOT NULL,  
 description VARCHAR(30) NOT NULL,  
 entry_person VARCHAR(30) NOT NULL DEFAULT USER   
)  
GO  
INSERT inventory22 (description)  
VALUES ('Red pencil')  
INSERT inventory22 (description)  
VALUES ('Blue pencil')  
INSERT inventory22 (description)  
VALUES ('Green pencil')  
INSERT inventory22 (description)  
VALUES ('Black pencil')  
INSERT inventory22 (description)  
VALUES ('Yellow pencil')  
GO  

Dit is de query om alle informatie uit de inventory22 tabel te selecteren:

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

Hier is de resultaatset (let op de entry-person waarde):

part_id     description                    entry_person
----------- ------------------------------ -------------------------
100         Red pencil                     dbo
101         Blue pencil                    dbo
102         Green pencil                   dbo
103         Black pencil                   dbo
104         Yellow pencil                  dbo
 
(5 row(s) affected)

C. Gebruik van USER in combinatie met EXECUTE AS

Het volgende voorbeeld illustreert het gedrag van USER wanneer wordt opgeroepen binnen een geïmiteerde sessie.

SELECT USER;  
GO  
EXECUTE AS USER = 'Mario';  
GO  
SELECT USER;  
GO  
REVERT;  
GO  
SELECT USER;  
GO  

Hier is het resultatenoverzicht.

DBO
Mario
DBO

Zie ook

ALTER TABLE (Transact-SQL)
MAAK TABEL AAN (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
beveiligingsfuncties (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)