USER_NAME (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

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

Article link iconTransact-SQL 構文表記規則

構文

USER_NAME ( [ id ] )  

Note

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

id
データベース ユーザーに関連付けられている識別番号を指定します。 idint です。かっこが必要です。

戻り値の型

nvarchar(128)

注釈

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

Note

USER_NAME 関数は Azure SQL Database でサポートされていますが、USER_NAME と一緒に Execute as を使用することは Azure SQL Database ではサポートされていません。

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 の行を検索します。検索される名前は、ユーザー識別番号 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

例: Azure Synapse Analytics、Analytics Platform System (PDW)

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

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

SELECT USER_NAME();  

これは現在のログイン ユーザーの結果セットです。

------------------------------   
User7                              

F. WHERE 句で USER_NAME を使用する

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

SELECT name FROM sysusers WHERE name = USER_NAME(1);  

結果セットは次のようになります。

name                             
------------------------------   
User7                              

参照

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
システム関数 (Transact-SQL)
SYSTEM_USER (Transact-SQL)