次の方法で共有


USER (Transact-SQL)

既定値が指定されていない場合に、現在のユーザーのデータベース ユーザー名に対するシステム定義の値を、テーブルに挿入します。

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

構文

USER

戻り値の型

char

説明

USER では、USER_NAME システム関数と同じ機能が提供されます。

USER は、CREATE TABLE または ALTER TABLE ステートメントで DEFAULT 制約を指定して実行するか、標準的な関数として使用します。

USER では、常に現在のコンテキストの名前が返されます。 EXECUTE AS ステートメントの後に呼び出した場合は、権限を借用したコンテキストの名前が返されます。

Windows プリンシパルがグループのメンバーシップを使ってデータベースにアクセスした場合、グループの名前ではなく Windows プリンシパルの名前が返されます。

使用例

A. USER を使用してデータベース ユーザー名を返す

次の例では、変数を char 型として宣言し、USER の現在値をこの変数に割り当てた後、テキストの説明を付けてこの変数を出力します。

DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO

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

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

The current user's database username is: dbo

(1 row(s) affected)

B. USER を DEFAULT 制約と共に使用する

次の例では、sales 行の販売員に対する DEFAULT 制約として USER を使用し、テーブルを作成します。

USE AdventureWorks2012;
GO
CREATE TABLE inventory22
(
 part_id int IDENTITY(100, 1) NOT NULL,
 description varchar(30) NOT NULL,
 entry_person varchar(30) NOT NULL DEFAULT USER 
)
GO
INSERT inventory22 (description)
VALUES ('Red pencil')
INSERT inventory22 (description)
VALUES ('Blue pencil')
INSERT inventory22 (description)
VALUES ('Green pencil')
INSERT inventory22 (description)
VALUES ('Black pencil')
INSERT inventory22 (description)
VALUES ('Yellow pencil')
GO

次は、inventory22 テーブルからすべての情報を選択するクエリです。

SELECT * FROM inventory22 ORDER BY part_id;
GO

次に結果セットを示します。entry-person の値に注意してください。

part_id description entry_person

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

100 Red pencil dbo

101 Blue pencil dbo

102 Green pencil dbo

103 Black pencil dbo

104 Yellow pencil dbo

(5 row(s) affected)

C. USER を EXECUTE AS と組み合わせて使用する

次の例では、権限を借用したセッションを内部で呼び出すときの、USER の動作を示します。

SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO

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

DBO

Mario

DBO

関連項目

参照

ALTER TABLE (Transact-SQL)

CREATE TABLE (Transact-SQL)

CURRENT_TIMESTAMP (Transact-SQL)

CURRENT_USER (Transact-SQL)

セキュリティ関数 (Transact-SQL)

SESSION_USER (Transact-SQL)

SYSTEM_USER (Transact-SQL)

USER_NAME (Transact-SQL)