USER_NAME (Transact-SQL)
傳回指定識別碼的資料庫使用者名稱。
語法
USER_NAME ( [ id ] )
引數
- id
這是與資料庫使用者關聯的識別碼。id是 int。它必須用括號括住。
傳回類型
nvarchar(256)
備註
當省略 id 時,會假設為目前內容中的目前使用者。在 EXECUTE AS 陳述式後不指定 id 呼叫 USER_NAME 時,USER_NAME 會傳回模擬使用者的名稱。如果 Windows 主體利用群組中的成員資格來存取資料庫,則 USER_NAME 會傳回 Windows 主體名稱而非群組。
範例
A. 使用 USER_NAME
下列範例會傳回使用者識別碼 13 的使用者名稱。
SELECT USER_NAME(13);
GO
B. 使用 USER_NAME 而不指定識別碼
下列範例不指定識別碼來尋找目前使用者的名稱。
SELECT USER_NAME();
GO
使用者是系統管理員 (sysadmin) 固定伺服器角色成員的結果集如下:
------------------------------
dbo
(1 row(s) affected)
C. 在 WHERE 子句中使用 USER_NAME
下列範例會在 sysusers 中尋找資料列,這個資料列名稱等於套用系統函數 USER_NAME 至使用者識別碼 1 所得的結果。
SELECT name FROM sysusers WHERE name = USER_NAME(1);
GO
以下為結果集:
name
------------------------------
dbo
(1 row(s) affected)
D. 模擬期間結合 EXECUTE AS 呼叫 USER_NAME
下列範例會顯示 USER_NAME 在模擬期間的行為方式。
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
以下為結果集:
DBO
Zelig
DBO