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
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
Deze functie geeft de naam van de huidige gebruiker terug. Deze functie is gelijk aan USER_NAME().
Transact-SQL syntaxis-conventies
Syntaxis
CURRENT_USER
Retourtypen
sysname
Opmerkingen
CURRENT_USER geeft de naam van de huidige beveiligingscontext terug. Als CURRENT_USER wordt uitgevoerd na een oproep om de context te EXECUTE AS wisselen, CURRENT_USER zal de naam van de geïmproviseerde context worden teruggegeven. Als een Windows-principal toegang heeft gehad tot de database via lidmaatschap van een groep, CURRENT_USER zal de naam van de Windows-principal teruggeven in plaats van de groepsnaam.
Zie SUSER_NAME (Transact-SQL) enSYSTEM_USER (Transact-SQL) om te leren hoe je de login van de huidige gebruiker kunt teruggeven.
Voorbeelden
Eén. Met CURRENT_USER de huidige gebruikersnaam teruggeven
Dit voorbeeld geeft de naam van de huidige gebruiker terug.
SELECT CURRENT_USER;
GO
B. Het gebruik van CURRENT_USER als DEFAULT beperking
Dit voorbeeld maakt een tabel die als CURRENT_USER beperking wordt gebruiktDEFAULT, voor de order_person kolom, op een sales-rij.
Note
In Azure SQL Database en SQL Database in Microsoft Fabric is de USE instructie niet beschikbaar. Maak in plaats daarvan direct verbinding met de beoogde database en voer de rest van het codevoorbeeld uit.
USE AdventureWorks2022;
GO
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'orders22')
DROP TABLE orders22;
GO
SET NOCOUNT ON;
CREATE TABLE orders22
(
order_id int IDENTITY(1000, 1) NOT NULL,
cust_id int NOT NULL,
order_date smalldatetime NOT NULL DEFAULT GETDATE(),
order_amt money NOT NULL,
order_person char(30) NOT NULL DEFAULT CURRENT_USER
);
GO
Dit voorbeeld voegt een record in de tabel in. De gebruiker die Wanida genoemd is, voert deze statements uit.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95);
GO
SET NOCOUNT OFF;
GO
Deze query selecteert alle informatie uit de orders22 tabel.
SELECT * FROM orders22;
GO
Hier is het resultatenoverzicht.
order_id cust_id order_date order_amt order_person
----------- ----------- -------------------- ------------ ------------
1000 5105 2005-04-03 23:34:00 577.95 Wanida
(1 row(s) affected)
C. Het gebruik van CURRENT_USER vanuit een geïmiteerde context
In dit voorbeeld voert de gebruiker Wanida de volgende Transact-SQL code uit om gebruiker 'Arnalfo' te imiteren.
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Hier is het resultatenoverzicht.
Wanida
Arnalfo
Wanida