USER_NAME (Transact-SQL)

指定した識別番号から、データベース ユーザー名を返します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

USER_NAME ( [ id ] )

引数

  • id
    データベース ユーザーに関連付けられている識別番号を指定します。idのデータ型は int です。かっこで囲む必要があります。

戻り値の型

nvarchar(256)

説明

id を省略した場合は、現在のコンテキストの現在のユーザーであると見なされます。"NULL" という語が含まれていると、NULL が返されます。EXECUTE AS ステートメントの実行後に id を指定せずに USER_NAME を呼び出した場合、USER_NAME では権限を借用したユーザーの名前が返されます。Windows プリンシパルがグループのメンバーシップを使ってデータベースにアクセスした場合、グループの名前ではなく Windows プリンシパルの名前が返されます。

使用例

A. USER_NAME を使用する

次の例では、ユーザー ID 13 のユーザー名を返します。

SELECT USER_NAME(13);
GO

B. ID を指定せずに USER_NAME を使用する

次の例では、ID を指定せずに、現在のユーザーの名前を検索します。

SELECT USER_NAME();
GO

次に、ユーザーが sysadmin 固定サーバー ロールのメンバーである場合の結果セットを示します。

------------------------------

dbo

(1 row(s) affected)

C. WHERE 句で USER_NAME を使用する

次の例では、sysusers の行を検索します。検索される名前は、ユーザー識別番号 1 に対してシステム関数 USER_NAME を適用した結果と同じになります。

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