SUSER_SNAME (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Mengembalikan nama login yang terkait dengan nomor identifikasi keamanan (SID).
Sintaks
SUSER_SNAME ( [ server_user_sid ] )
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
server_user_sid
Berlaku untuk: SQL Server 2008 dan yang lebih baru
Adalah nomor identifikasi keamanan masuk opsional. server_user_sid adalah varbinary(85). server_user_sid dapat berupa nomor identifikasi keamanan dari setiap login SQL Server atau pengguna atau grup Microsoft Windows. Jika server_user_sid tidak ditentukan, informasi tentang pengguna saat ini dikembalikan. Jika parameter berisi kata NULL akan mengembalikan NULL.
Jenis Pengembalian
nvarchar(128)
Keterangan
SUSER_SNAME dapat digunakan sebagai batasan DEFAULT baik dalam ALTER TABLE atau CREATE TABLE. SUSER_SNAME dapat digunakan dalam daftar pemilihan, dalam klausa WHERE, dan di mana saja ekspresi diizinkan. SUSER_SNAME harus selalu diikuti oleh tanda kurung, meskipun tidak ada parameter yang ditentukan.
Ketika dipanggil tanpa argumen, SUSER_SNAME mengembalikan nama konteks keamanan saat ini. Ketika dipanggil tanpa argumen dalam batch yang telah beralih konteks dengan menggunakan EXECUTE AS, SUSER_SNAME mengembalikan nama konteks yang ditiru. Saat dipanggil dari konteks yang ditiru, ORIGINAL_LOGIN mengembalikan nama konteks asli.
Azure SQL Database Komentar
SUSER_NAME selalu mengembalikan nama login untuk konteks keamanan saat ini.
Pernyataan SUSER_SNAME tidak mendukung eksekusi menggunakan konteks keamanan yang ditiru melalui EXECUTE AS.
Contoh
A. Menggunakan SUSER_SNAME
Contoh berikut mengembalikan nama login untuk konteks keamanan saat ini.
SELECT SUSER_SNAME();
GO
B. Menggunakan SUSER_SNAME dengan ID keamanan pengguna Windows
Contoh berikut mengembalikan nama login yang terkait dengan nomor identifikasi keamanan Windows.
Berlaku untuk: SQL Server 2008 dan yang lebih baru
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
C. Menggunakan SUSER_SNAME sebagai batasan DEFAULT
Contoh berikut menggunakan SUSER_SNAME sebagai DEFAULT batasan dalam pernyataan CREATE TABLE .
USE AdventureWorks2012;
GO
CREATE TABLE sname_example
(
login_sname sysname DEFAULT SUSER_SNAME(),
employee_id uniqueidentifier DEFAULT NEWID(),
login_date datetime DEFAULT GETDATE()
);
GO
INSERT sname_example DEFAULT VALUES;
GO
D. Memanggil SUSER_SNAME dalam kombinasi dengan EXECUTE AS
Contoh ini menunjukkan perilaku SUSER_SNAME ketika dipanggil dari konteks yang ditiru.
Berlaku untuk: SQL Server 2008 dan yang lebih baru
SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO
Berikut adalah hasilnya.
sa
WanidaBenShoof
sa
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
E. Menggunakan SUSER_SNAME
Contoh berikut mengembalikan nama login untuk nomor identifikasi keamanan dengan nilai 0x01.
SELECT SUSER_SNAME(0x01);
GO
F. Mengembalikan Login Saat Ini
Contoh berikut mengembalikan nama login dari login saat ini.
SELECT SUSER_SNAME() AS CurrentLogin;
GO
Lihat juga
SUSER_SID (SQL Bertransaksi)
Prinsipal (Mesin Database)
sys.server_principals (SQL Bertransaksi)
EXECUTE AS (T-SQL)
