USER_NAME (Transact-SQL)
傳回指定識別碼的資料庫使用者名稱。
語法
USER_NAME ( [ id ] )
引數
- id
關聯至資料庫使用者的識別碼。 id是 int。 它必須用括號括住。
傳回類型
nvarchar(256)
備註
當省略 id 時,會假設為目前內容中的目前使用者。 如果參數包含 NULL 一詞,即會傳回 NULL。如果未在 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