The Wayback Machine - http://web.archive.org/web/20121027144415/http://msdn.microsoft.com:80/zh-tw/library/ms188014(v=sql.90).aspx
本主題尚未接受評分 - 為這個主題評分

USER_NAME (Transact-SQL)

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

主題連結圖示 Transact-SQL 語法慣例


USER_NAME ( [ id ] )
id

這是與資料庫使用者關聯的識別碼。id 是 int。它必須用括號括住。

nvarchar(128)

當省略 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
本文對您有任何幫助嗎?
(剩餘 1500 個字元)
社群內容 新增