USER_ID (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

データベース ユーザーの ID 番号を返します。

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに、DATABASE_PRINCIPAL_ID を使用してください。

Transact-SQL 構文表記規則

構文

USER_ID ( [ 'user' ] )  

Note

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

引数

user
使用するユーザー名を指定します。 ユーザーncharです。 場合、 char 値を指定すると、暗黙的に変換されます ncharです。 かっこが必要です。

戻り値の型

int

解説

ときに ユーザー は省略すると、現在のユーザーと見なされます。 パラメーターに NULL が含まれていると、NULL が返されます。EXECUTE AS の後で USER_ID が呼び出されると、USER_ID は権限を借用したコンテキストの ID を返します。

特定のデータベース ユーザーにマップされない Windows プリンシパルがグループのメンバーシップでデータベースにアクセスした場合、USER_ID では 0 (public の ID) が返されます。 このプリンシパルがスキーマを指定せずにオブジェクトを作成した場合、SQL Server では Windows プリンシパルにマップされた暗黙のユーザーとスキーマが作成されます。 このときに作成されたユーザーを使用して、データベースに接続することはできません。 暗黙のユーザーにマップされた Windows プリンシパルが USER_ID を呼び出すと、暗黙のユーザーの ID が返されます。

USER_ID は、選択リストの中、WHERE 句の中、また式を使える所ならどこにでも使用できます。 詳細については、「式 (Transact-SQL)」を参照してください。

次の例では、AdventureWorks2022 ユーザー Harold の ID 番号が返されます。

USE AdventureWorks2022;  
SELECT USER_ID('Harold');  
GO  

参照

USER_NAME (Transact-SQL)
sys.database_principals (Transact-SQL)
DATABASE_PRINCIPAL_ID (Transact-SQL)
セキュリティ関数 (Transact-SQL)