USER_NAME (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengembalikan nama pengguna database dari nomor identifikasi tertentu, atau nama pengguna saat ini.

Konvensi sintaks transact-SQL

Sintaksis

USER_NAME ( [ ID ] )

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

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 13pengguna , 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_principalsmana nama sama dengan hasil menerapkan fungsi USER_NAME sistem ke nomor 1identifikasi pengguna .

SELECT name FROM sys.database_principals WHERE name = USER_NAME(1);  
GO  

Berikut adalah hasil yang ditetapkan.

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 adalah hasil yang ditetapkan.

-------------
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 1identifikasi pengguna .

SELECT name FROM sysusers WHERE name = USER_NAME(1);  

Berikut adalah hasil yang ditetapkan.

name                             
------------------------------   
User7