CURRENT SQLID 特殊レジスター
CURRENT SQLID はプロセスの SQL 許可 ID を指定します。
データ・タイプは VARCHAR (128) です。
SQL 許可 ID とは次のものを言います。
- 動的に準備された CREATE、GRANT、および REVOKE の各 SQL ステートメントの許可検査に使われる許可 ID。
- 動的に出された CREATE ステートメントによって作成される表スペース、 データベース、ストレージ・グループ、またはシノニムの所有者。
CURRENT SQLID の初期値は、接続出口ルーチンまたはサインオン出口ルーチン によって与えることができます。 初期値が与えられていない場合、 初期値はプロセスの 1 次許可 ID となります。 次のいずれかのイベントが発生するまで、この値の効果は保たれます。
- SQL 許可 ID が SET CURRENT SQLID ステートメントの実行によって変更される。
- CICS® トランザクションサブタスクまたは IMS 独立領域から、SIGNONまたは再SIGNONのリクエストを受信します。
- Db2 の接続が終了しました。
- トラステッド接続での実行中に、ユーザーが切り替わる。
ユーザー定義関数またはストアドプロシージャにおけるCURRENT SQLIDの初期値は、 表1のルールに従って継承されます。
CURRENT SQLID は、現行サーバーによって実行される SQL ステートメント 内でしか参照できません。
CURRENT SQLID は、ロールにすることはできません。
SET CURRENT SQLID の例
- 例 1
- 現在のSQLIDをプライマリ認証IDに設定します。
SET CURRENT SQLID = SESSION_USER; - 例 2
- SQL認証IDを「 GROUP34 」(プロセスの認証IDの一つ)に設定します。
SET CURRENT SQLID = 'GROUP34';