Bagikan melalui


SYSTEM_USER (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Memungkinkan nilai yang disediakan sistem untuk login saat ini dimasukkan ke dalam tabel ketika tidak ada nilai default yang ditentukan.

Konvensi sintaks transact-SQL

Sintaksis

SYSTEM_USER  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Jenis Kembalian

nvarchar(128)

Keterangan

Anda dapat menggunakan fungsi SYSTEM_USER dengan batasan DEFAULT dalam pernyataan CREATE TABLE dan ALTER TABLE. Anda juga dapat menggunakannya sebagai fungsi standar apa pun.

Jika nama pengguna dan nama masuk berbeda, SYSTEM_USER mengembalikan nama login.

Jika pengguna saat ini masuk ke SQL Server dengan menggunakan Autentikasi Windows, SYSTEM_USER mengembalikan nama identifikasi masuk Windows dalam formulir: DOMAIN\user_login_name. Namun, jika pengguna saat ini masuk ke SQL Server dengan menggunakan Autentikasi SQL Server, SYSTEM_USER mengembalikan nama identifikasi masuk SQL Server, seperti WillisJo untuk pengguna yang masuk sebagai WillisJo.

SYSTEM_USER mengembalikan nama konteks yang sedang dijalankan. Jika pernyataan EXECUTE AS telah digunakan untuk beralih konteks, SYSTEM_USER mengembalikan nama konteks yang ditiru.

Anda tidak dapat MENJALANKAN SEBAGAI SYSTEM_USER.

Azure SQL Database: Pernyataan SYSTEM_USER tidak mendukung eksekusi menggunakan konteks keamanan yang ditiru melalui EXECUTE AS.

Contoh

J. Menggunakan SYSTEM_USER untuk mengembalikan nama pengguna sistem saat ini

Contoh berikut mendeklarasikan char variabel, menyimpan nilai SYSTEM_USER saat ini dalam variabel, lalu mencetak nilai yang disimpan dalam variabel.

DECLARE @sys_usr CHAR(30);  
SET @sys_usr = SYSTEM_USER;  
SELECT 'The current system user is: '+ @sys_usr;  
GO  

Berikut adalah hasil yang ditetapkan.

----------------------------------------------------------
The current system user is: WillisJo

(1 row(s) affected)

B. Menggunakan SYSTEM_USER dengan batasan DEFAULT

Contoh berikut membuat tabel dengan SYSTEM_USER sebagai DEFAULT batasan SRep_tracking_user untuk kolom.

USE AdventureWorks2022;  
GO  
CREATE TABLE Sales.Sales_Tracking  
(  
    Territory_id INT IDENTITY(2000, 1) NOT NULL,  
    Rep_id INT NOT NULL,  
    Last_sale DATETIME NOT NULL DEFAULT GETDATE(),  
    SRep_tracking_user VARCHAR(30) NOT NULL DEFAULT SYSTEM_USER  
);  
GO  
INSERT Sales.Sales_Tracking (Rep_id)  
VALUES (151);  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (293, '19980515');  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (27882, '19980620');  
INSERT Sales.Sales_Tracking (Rep_id)  
VALUES (21392);  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (24283, '19981130');  
GO  

Kueri berikut untuk memilih semua informasi dari Sales_Tracking tabel:

SELECT * FROM Sales_Tracking ORDER BY Rep_id;  
GO  

Berikut adalah hasil yang ditetapkan.

Territory_id Rep_id Last_sale            SRep_tracking_user
-----------  ------ -------------------- ------------------
2000         151    Mar 4 1998 10:36AM   ArvinDak
2001         293    May 15 1998 12:00AM  ArvinDak
2003         21392  Mar 4 1998 10:36AM   ArvinDak
2004         24283  Nov 3 1998 12:00AM   ArvinDak
2002         27882  Jun 20 1998 12:00AM  ArvinDak
 
(5 row(s) affected)

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

C. Menggunakan SYSTEM_USER untuk mengembalikan nama pengguna sistem saat ini

Contoh berikut mengembalikan nilai saat ini dari SYSTEM_USER.

SELECT SYSTEM_USER;  

Lihat Juga

ALTER TABLE (Transact-SQL)
BUAT TABEL (Transact-SQL)
CURRENT_TIMESTAMP (T-SQL)
CURRENT_USER (T-SQL)
SESSION_USER (T-SQL)
Fungsi Sistem (Transact-SQL)
USER (Transact-SQL)