SUSER_SNAME (Transact-SQL)SUSER_SNAME (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

セキュリティ ID 番号 (SID) に関連付けられているログイン名を返します。Returns the login name associated with a security identification number (SID).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

SUSER_SNAME ( [ server_user_sid ] )   

注意

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

引数Arguments

server_user_sidserver_user_sid
適用対象: SQL Server 2008SQL Server 2008 以降Applies to: SQL Server 2008SQL Server 2008 and later

オプションのログイン セキュリティ ID 番号を指定します。Is the optional login security identification number. server_user_sidvarbinary(85) です。server_user_sid is varbinary(85). server_user_sid には、任意の SQL ServerSQL Server ログイン名または MicrosoftMicrosoft Windows ユーザーやグループのセキュリティ ID 番号を指定できます。server_user_sid can be the security identification number of any SQL ServerSQL Server login or MicrosoftMicrosoft Windows user or group. server_user_sid の指定を省略すると、現在のユーザーについての情報が返されます。If server_user_sid is not specified, information about the current user is returned. パラメーターに "NULL" という語が含まれていると、NULL が返されます。If the parameter contains the word NULL will return NULL.

戻り値の型Return Types

nvarchar(128)nvarchar(128)

注釈Remarks

SUSER_SNAME は、ALTER TABLE または CREATE TABLE の中で、DEFAULT 制約として使用できます。SUSER_SNAME can be used as a DEFAULT constraint in either ALTER TABLE or CREATE TABLE. SUSER_SNAME は、選択リストの中、WHERE 句の中、また、式を使える所ならどこにでも使用できます。SUSER_SNAME can be used in a select list, in a WHERE clause, and anywhere an expression is allowed. SUSER_SNAME の後には、パラメーターを指定しない場合も含め、常にかっこが必要です。SUSER_SNAME must always be followed by parentheses, even if no parameter is specified.

SUSER_SNAME を引数なしで呼び出すと、現在のセキュリティ コンテキストの名前が返されます。When called without an argument, SUSER_SNAME returns the name of the current security context. EXECUTE AS を使用してコンテキストを切り替えたバッチ内で SUSER_SNAME を引数なしで呼び出すと、権限を借用したコンテキストの名前が返されます。When called without an argument within a batch that has switched context by using EXECUTE AS, SUSER_SNAME returns the name of the impersonated context. 権限を借用したコンテキストから ORIGINAL_LOGIN を呼び出すと、元のコンテキストの名前が返されます。When called from an impersonated context, ORIGINAL_LOGIN returns the name of the original context.

Azure SQL データベースAzure SQL Database 解説Remarks

SUSER_NAME では、常に現在のセキュリティ コンテキストのログイン名が返されます。SUSER_NAME always return the login name for the current security context.

SUSER_SNAME ステートメントでは、EXECUTE AS で借用したセキュリティ コンテキストを使用した実行がサポートされません。The SUSER_SNAME statement does not support execution using an impersonated security context through EXECUTE AS.

Examples

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

次の例では、現在のセキュリティ コンテキストのログイン名が返されます。The following example returns the login name for the current security context.

SELECT SUSER_SNAME();  
GO  

B.B. SUSER_SNAME を Windows ユーザーのセキュリティ ID と共に使用するUsing SUSER_SNAME with a Windows user security ID

次の例では、Windows セキュリティ ID 番号に関連付けられているログイン名が返されます。The following example returns the login name associated with a Windows security identification number.

適用対象: SQL Server 2008SQL Server 2008 以降Applies to: SQL Server 2008SQL Server 2008 and later

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);  
GO  

C.C. SUSER_SNAME を DEFAULT 制約として使用するUsing SUSER_SNAME as a DEFAULT constraint

次の例では、SUSER_SNAME ステートメントで DEFAULTCREATE TABLE 制約として使用しています。The following example uses SUSER_SNAME as a DEFAULT constraint in a CREATE TABLE statement.

USE AdventureWorks2012;  
GO  
CREATE TABLE sname_example  
(  
login_sname sysname DEFAULT SUSER_SNAME(),  
employee_id uniqueidentifier DEFAULT NEWID(),  
login_date  datetime DEFAULT GETDATE()  
);   
GO  
INSERT sname_example DEFAULT VALUES;  
GO  

D.D. SUSER_SNAME を EXECUTE AS と組み合わせて呼び出すCalling SUSER_SNAME in combination with EXECUTE AS

この例は、権限を借用したコンテキストから呼び出した場合の SUSER_SNAME の動作を示しています。This example shows the behavior of SUSER_SNAME when called from an impersonated context.

適用対象: SQL Server 2008SQL Server 2008 以降Applies to: SQL Server 2008SQL Server 2008 and later

SELECT SUSER_SNAME();  
GO  
EXECUTE AS LOGIN = 'WanidaBenShoof';  
SELECT SUSER_SNAME();  
REVERT;  
GO  
SELECT SUSER_SNAME();  
GO 

以下に結果を示します。Here is the result.

sa  
WanidaBenShoof  
sa

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

E.E. SUSER_SNAME を使用するUsing SUSER_SNAME

次の例では、セキュリティ ID 番号が 0x01 のログイン名を返します。The following example returns the login name for the security identification number with a value of 0x01.

SELECT SUSER_SNAME(0x01);  
GO  

F.F. 現在のログインを返すReturning the Current Login

次の例では、現在のログインのログイン名を返します。The following example returns the login name of the current login.

SELECT SUSER_SNAME() AS CurrentLogin;  
GO  

関連項目See Also

SUSER_SID (Transact-SQL) SUSER_SID (Transact-SQL)
プリンシパル (データベース エンジン) Principals (Database Engine)
sys.server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
EXECUTE AS (Transact-SQL)EXECUTE AS (Transact-SQL)