SYSTEM_USER (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Memungkinkan nilai yang disediakan sistem untuk login saat ini dimasukkan ke dalam tabel ketika tidak ada nilai default yang ditentukan.
Sintaks
SYSTEM_USER
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 set hasilnya.
----------------------------------------------------------
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 set hasilnya.
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)