Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Denna funktion returnerar namnet på den aktuella användaren. Den här funktionen motsvarar USER_NAME().
Transact-SQL syntaxkonventioner
Syntax
CURRENT_USER
Returtyper
sysname
Anmärkningar
CURRENT_USER återger namnet på den aktuella säkerhetskontexten. Om CURRENT_USER exekveras efter ett anrop för att byta EXECUTE AS kontext, CURRENT_USER kommer namnet på den imiterade kontexten att returneras. Om en Windows-huvudperson har fått tillgång till databasen genom medlemskap i en grupp, CURRENT_USER kommer namnet på Windows-huvudpersonen att returneras istället för gruppnamnet.
Se SUSER_NAME (Transact-SQL) ochSYSTEM_USER (Transact-SQL) för att lära dig hur du återställer inloggningen för den aktuella användaren.
Examples
A. Att använda CURRENT_USER för att returnera det aktuella användarnamnet
Detta exempel returnerar namnet på den aktuella användaren.
SELECT CURRENT_USER;
GO
B. Att använda CURRENT_USER som STANDARDBEGRÄNSNING
Detta exempel skapar en tabell som använder CURRENT_USER som DEFAULT begränsning, för kolumnen order_person , på en försäljningsrad.
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
Detta exempel infogar en post i tabellen. Användaren som Wanida heter exekverar dessa satser.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95);
GO
SET NOCOUNT OFF;
GO
Denna fråga väljer all information från tabellen orders22 .
SELECT * FROM orders22;
GO
Här är resultatet.
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. Att använda CURRENT_USER från en imiterad kontext
I detta exempel exekverar användaren Wanida följande Transact-SQL kod för att imitera användaren 'Arnalfo'.
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Här är resultatet.
Wanida
Arnalfo
Wanida
Se även
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
ALTER TABLE (Transact-SQL)
SKAPA TABELL (Transact-SQL)
Systemfunktioner (Transact-SQL)