Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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)