USER_NAME (Transact-SQL)

傳回指定識別碼的資料庫使用者名稱。

主題連結圖示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