Bagikan melalui


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.

Konvensi sintaks transact-SQL

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

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

Berikut set hasilnya.

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