CURRENT_USER (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsTitik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Fungsi ini mengembalikan nama pengguna saat ini. Fungsi ini setara dengan USER_NAME().

Konvensi sintaks transact-SQL

Sintaks

CURRENT_USER  

Jenis yang dikembalikan

nama sysname

Keterangan

CURRENT_USER mengembalikan nama konteks keamanan saat ini. Jika CURRENT_USER dijalankan setelah panggilan untuk EXECUTE AS beralih konteks, CURRENT_USER akan mengembalikan nama konteks yang ditiru. Jika prinsipal Windows mengakses database dengan cara keanggotaan dalam grup, CURRENT_USER akan mengembalikan nama prinsipal Windows alih-alih nama grup.

Lihat SUSER_NAME (Transact-SQL) dan SYSTEM_USER (Transact-SQL) untuk mempelajari cara mengembalikan login pengguna saat ini.

Contoh

J. Menggunakan CURRENT_USER untuk mengembalikan nama pengguna saat ini

Contoh ini mengembalikan nama pengguna saat ini.

SELECT CURRENT_USER;  
GO  

B. Menggunakan CURRENT_USER sebagai DEFAULT kendala

Contoh ini membuat tabel yang menggunakan CURRENT_USER sebagai DEFAULT batasan, untuk order_person kolom, pada baris penjualan.

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  

Contoh ini menyisipkan rekaman dalam tabel. Pengguna bernama Wanida menjalankan pernyataan ini.

INSERT orders22 (cust_id, order_amt)  
VALUES (5105, 577.95);  
GO  
SET NOCOUNT OFF;  
GO  

Kueri ini memilih semua informasi dari orders22 tabel.

SELECT * FROM orders22;  
GO  

Berikut set hasilnya.

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. Menggunakan CURRENT_USER dari konteks yang ditiru

Dalam contoh ini, pengguna Wanida menjalankan kode Transact-SQL berikut untuk meniru pengguna 'Arnalfo'.

SELECT CURRENT_USER;  
GO  
EXECUTE AS USER = 'Arnalfo';  
GO  
SELECT CURRENT_USER;  
GO  
REVERT;  
GO  
SELECT CURRENT_USER;  
GO  

Berikut set hasilnya.

Wanida
Arnalfo
Wanida