SUSER_SNAME (Transact-SQL)

セキュリティ ID 番号 (SID) に関連付けられているログイン名を返します。

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

構文

SUSER_SNAME ( [ server_user_sid ] ) 

引数

  • server_user_sid
    ログイン名のセキュリティ ID 番号を指定します。 server_user_sid (省略可) のデータ型は varbinary(85) です。 server_user_sid には、任意の SQL Server ログイン名または Microsoft Windows ユーザーやグループのセキュリティ ID 番号を指定できます。 server_user_sid の指定を省略すると、現在のユーザーについての情報が返されます。 パラメーターに "NULL" という語が含まれていると、NULL が返されます。

戻り値の型

nvarchar(128)

説明

SUSER_SNAME は、ALTER TABLE または CREATE TABLE の中で、DEFAULT 制約として使用できます。 SUSER_SNAME は、選択リストの中、WHERE 句の中、また、式を使える所ならどこにでも使用できます。 SUSER_SNAME の後には、パラメーターを指定しない場合も含め、常にかっこが必要です。

SUSER_SNAME を引数なしで呼び出すと、現在のセキュリティ コンテキストの名前が返されます。 EXECUTE AS を使用してコンテキストを切り替えたバッチ内で SUSER_SNAME を引数なしで呼び出すと、権限を借用したコンテキストの名前が返されます。 権限を借用したコンテキストから ORIGINAL_LOGIN を呼び出すと、元のコンテキストの名前が返されます。

使用例

A. SUSER_SNAME を使用する

次の例では、セキュリティ ID 番号が 0x01 のログイン名を返します。

SELECT SUSER_SNAME(0x01);
GO

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

次の例では、Windows セキュリティ ID 番号に関連付けられているログイン名が返されます。

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

C. SUSER_SNAME を DEFAULT 制約として使用する

次の例では、CREATE TABLE ステートメントで SUSER_SNAME を DEFAULT 制約として使用しています。

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. SUSER_SNAME を EXECUTE AS と組み合わせて呼び出す

次の例は、権限を借用したコンテキストから呼び出した場合の SUSER_SNAME の動作を示しています。

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

次に結果セットを示します。

sa

WanidaBenShoof

sa

関連項目

参照

SUSER_SID (Transact-SQL)

sys.server_principals (Transact-SQL)

概念

プリンシパル (データベース エンジン)