CURRENT_USER (SQL bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Fungsi ini mengembalikan nama pengguna saat ini. Fungsi ini setara dengan USER_NAME().
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)
