SUSER_SNAME (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengembalikan nama login yang terkait dengan nomor identifikasi keamanan (SID).
Sintaks
SUSER_SNAME ( [ server_user_sid ] )
Argumen
server_user_sid
Nomor identifikasi keamanan masuk opsional. server_user_sid adalah varbinary(85). server_user_sid dapat menjadi nomor identifikasi keamanan dari setiap login SQL Server atau pengguna atau grup Microsoft Windows. sid
Lihat kolom dalam sys.server_principals
atau sys.sql_logins
tampilan katalog. Jika server_user_sid tidak ditentukan, informasi tentang pengguna saat ini dikembalikan. Jika parameter berisi kata NULL
, SUSER_SNAME
mengembalikan NULL
.
server_user_sid tidak didukung di Azure SQL Database.
Tipe hasil
nvarchar(128)
Keterangan
SUSER_SNAME
dapat digunakan sebagai batasan DEFAULT baik di ALTER TABLE
atau CREATE TABLE
. SUSER_SNAME
dapat digunakan dalam daftar pilih, dalam klausa WHERE, dan di mana saja ekspresi diizinkan. SUSER_SNAME
harus selalu diikuti oleh tanda kurung, meskipun tidak ada parameter yang ditentukan.
Saat 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.
Komentar Azure SQL Database
SUSER_SNAME
selalu mengembalikan nama login untuk konteks keamanan saat ini.
Pernyataan SUSER_SNAME
ini tidak mendukung eksekusi menggunakan konteks keamanan yang ditiru melalui EXECUTE AS.
SUSER_SNAME
tidak mendukung argumen server_user_id .
Contoh
J. Gunakan SUSER_SNAME
Contoh berikut mengembalikan nama masuk untuk konteks keamanan saat ini.
SELECT SUSER_SNAME();
GO
B. Menggunakan SUSER_SNAME dengan ID keamanan pengguna Windows
Contoh berikut mengembalikan nama masuk yang terkait dengan nomor identifikasi keamanan Windows.
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
C. Menggunakan SUSER_SNAME sebagai batasan DEFAULT
Contoh berikut menggunakan SUSER_SNAME
sebagai batasan DEFAULT dalam pernyataan CREATE TABLE
.
USE AdventureWorks2022;
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. Panggil SUSER_SNAME dalam kombinasi dengan EXECUTE AS
Contoh ini menunjukkan perilaku SUSER_SNAME
ketika dipanggil dari konteks yang ditiru.
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. Gunakan 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