Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL ServerAzure
SQL Managed InstanceAzure
Synapse Analytics
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 DEFAULT batasan dalam CREATE TABLE pernyataan 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 EXECUTE AS pernyataan telah digunakan untuk mengganti konteks, SYSTEM_USER mengembalikan nama konteks yang ditiru.
Anda tidak bisa EXECUTE AS 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 DEFAULT batasan
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
C. Menggunakan SYSTEM_USER untuk mengembalikan nama pengguna sistem saat ini
Contoh berikut mengembalikan nilai saat ini dari SYSTEM_USER.
SELECT SYSTEM_USER;