USER_NAME (Transact-SQL)USER_NAME (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

指定した識別番号から、データベース ユーザー名を返します。Returns a database user name from a specified identification number.

記事リンク アイコン Transact-SQL 構文表記規則Article link icon Transact-SQL Syntax Conventions

構文Syntax

USER_NAME ( [ id ] )  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

idid
データベース ユーザーに関連付けられている識別番号を指定します。Is the identification number associated with a database user. idint です。かっこが必要です。id is int. The parentheses are required.

戻り値の型Return Types

nvarchar(128)nvarchar(128)

注釈Remarks

id を省略した場合は、現在のコンテキストの現在のユーザーであると見なされます。When id is omitted, the current user in the current context is assumed. パラメーターに "NULL" という語が含まれていると、NULL が返されます。If the parameter contains the word NULL will return NULL. EXECUTE AS ステートメントの実行後に id を指定せずに USER_NAME を呼び出した場合、USER_NAME では権限を借用したユーザーの名前が返されます。When USER_NAME is called without specifying an id after an EXECUTE AS statement, USER_NAME returns the name of the impersonated user. Windows プリンシパルがグループのメンバーシップを使ってデータベースにアクセスした場合、USER_NAME はグループではなく Windows プリンシパルの名前を返します。If a Windows principal accesses the database by way of membership in a group, USER_NAME returns the name of the Windows principal instead of the group.

注意

USER_NAME 関数は Azure SQL Database でサポートされていますが、USER_NAME と一緒に Execute as を使用することは Azure SQL Database ではサポートされていません。Although the USER_NAME function is supported on Azure SQL Database, using Execute as with USER_NAME is not supported on Azure SQL Database.

Examples

A.A. USER_NAME を使用するUsing USER_NAME

次の例では、ユーザー ID 13 のユーザー名を返します。The following example returns the user name for user ID 13.

SELECT USER_NAME(13);  
GO  

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

次の例では、ID を指定せずに、現在のユーザーの名前を検索します。The following example finds the name of the current user without specifying an ID.

SELECT USER_NAME();  
GO  

次に、ユーザーが sysadmin 固定サーバー ロールのメンバーである場合の結果セットを示します。Here is the result set for a user that is a member of the sysadmin fixed server role.

------------------------------  
dbo  
 
(1 row(s) affected)

C.C. WHERE 句で USER_NAME を使用するUsing USER_NAME in the WHERE clause

次の例では、sysusers の行を検索します。検索される名前は、ユーザー識別番号 USER_NAME に対してシステム関数 1 を適用した結果と同じになります。The following example finds the row in sysusers in which the name is equal to the result of applying the system function USER_NAME to user identification number 1.

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

結果セットは次のようになります。Here is the result set.

name  
------------------------------  
dbo  
 
(1 row(s) affected)

D.D. EXECUTE AS での権限借用中に USER_NAME を呼び出すCalling USER_NAME during impersonation with EXECUTE AS

次の例では、権限借用中の USER_NAME の動作を示します。The following example shows how USER_NAME behaves during impersonation.

SELECT USER_NAME();  
GO  
EXECUTE AS USER = 'Zelig';  
GO  
SELECT USER_NAME();  
GO  
REVERT;  
GO  
SELECT USER_NAME();  
GO  

結果セットは次のようになります。Here is the result set.

DBO  
Zelig  
DBO

例: Azure Synapse AnalyticsAzure Synapse AnalyticsParallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse

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

次の例では、ID を指定せずに、現在のユーザーの名前を検索します。The following example finds the name of the current user without specifying an ID.

SELECT USER_NAME();  

これは現在のログイン ユーザーの結果セットです。Here is the result set for a currently logged-in user.

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

F.F. WHERE 句で USER_NAME を使用するUsing USER_NAME in the WHERE clause

次の例では、sysusers の行を検索します。検索される名前は、ユーザー識別番号 USER_NAME に対してシステム関数 1 を適用した結果と同じになります。The following example finds the row in sysusers in which the name is equal to the result of applying the system function USER_NAME to user identification number 1.

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

結果セットは次のようになります。Here is the result set.

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

参照See Also

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