CURRENT_USER (SQL bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

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

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

CURRENT_USER  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Tipe 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 perwakilan 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

A. 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 batasan DEFAULT

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

USE AdventureWorks2012;  
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 adalah hasil yang ditetapkan.

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 adalah hasil yang ditetapkan.

Wanida
Arnalfo
Wanida

Lihat juga

USER_NAME (SQL bertransaksi)
SYSTEM_USER (SQL Bertransaksi)
sys.database_principals (SQL Bertransaksi)
ALTER TABLE (Transact-SQL)
BUAT TABEL (Transact-SQL)
Fungsi Sistem (SQL Bertransaksi)