USER_NAME (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 pengguna database dari nomor identifikasi tertentu, atau nama pengguna saat ini.
Sintaks
USER_NAME ( [ ID ] )
Argumen
ID
Nomor identifikasi yang terkait dengan pengguna database, seperti yang tercantum dalam sys.database_principals. ID adalah int. Tanda kurung diperlukan.
Jenis yang dikembalikan
nvarchar(128)
Keterangan
Ketika ID dihilangkan, pengguna saat ini dalam konteks saat ini diasumsikan. Jika parameter berisi kata NULL
, USER_NAME
akan mengembalikan NULL
. Ketika USER_NAME
dipanggil tanpa menentukan ID setelah EXECUTE AS
pernyataan, USER_NAME
mengembalikan nama pengguna yang ditiru. Jika prinsipal Windows mengakses database dengan cara keanggotaan dalam grup, USER_NAME
mengembalikan nama prinsipal Windows alih-alih grup.
USER_NAME()
Meskipun fungsi ini didukung di Azure SQL Database, penggunaan EXECUTE AS USER = USER_NAME(n)
tidak didukung di Azure SQL Database.
Contoh
J. Menggunakan USER_NAME() untuk mengidentifikasi ID pengguna
Contoh berikut mengembalikan nama pengguna untuk ID 13
pengguna , seperti yang tercantum dalam sys.database_principals.
SELECT USER_NAME(13);
GO
B. Menggunakan USER_NAME tanpa ID
Contoh berikut menemukan nama pengguna saat ini tanpa menentukan ID.
SELECT USER_NAME();
GO
Berikut adalah hasil yang ditetapkan untuk pengguna yang merupakan anggota peran server tetap sysadmin.
dbo
C. Menggunakan USER_NAME dalam klausa WHERE
Contoh berikut menemukan baris di , di sys.database_principals
mana nama sama dengan hasil menerapkan fungsi USER_NAME
sistem ke nomor 1
identifikasi pengguna .
SELECT name FROM sys.database_principals WHERE name = USER_NAME(1);
GO
Berikut set hasilnya.
name
------------------------------
dbo
(1 row(s) affected)
D. Memanggil USER_NAME selama peniruan dengan EXECUTE AS
Contoh berikut menunjukkan bagaimana USER_NAME
berprilaku selama peniruan identitas.
EXECUTE AS
saat ini tidak didukung di Microsoft Fabric.
Perhatian
Saat menguji dengan EXECUTE AS
, selalu skrip untuk REVERT
diikuti.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Berikut set hasilnya.
-------------
dbo
-------------
Zelig
-------------
dbo
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
E. Menggunakan USER_NAME tanpa ID
Contoh berikut menemukan nama pengguna saat ini tanpa menentukan ID.
SELECT USER_NAME();
Berikut adalah hasil yang ditetapkan untuk pengguna yang saat ini masuk.
User7
F. Menggunakan USER_NAME dalam klausa WHERE
Contoh berikut menemukan baris di sysusers
mana nama sama dengan hasil penerapan fungsi USER_NAME
sistem ke nomor 1
identifikasi pengguna .
SELECT name FROM sysusers WHERE name = USER_NAME(1);
Berikut set hasilnya.
name
------------------------------
User7