中間層信頼済みユーザー アプリケーションを介してログオンしているユーザーはすべて、アプリケーション ログオン ユーザー(信頼済みユーザー)のセキュリティ制約の割り当てとアクセス権限を継承し、SET SESSION CONSTRAINT文を使用して、デフォルトの制約値から、信頼済みユーザーが使用できる他の値に切り替えることができます。
SET SESSIONを使用した、セッションのセキュリティ制約値の変更を参照してください。
最初のSET QUERY_BAND処理
信頼済みユーザーのアプリケーションが、最初のSET QUERY_BAND文(信頼済みユーザー アプリケーションの標準操作)を実行依頼すると、セッションの制約値は空のセットにリセットされ、次の処理が実行されます。
- この文でプロキシ ユーザーを設定しない場合、セッションでは、通常の永久ユーザー制約階層に従って、信頼済みユーザーのデフォルトの制約値が使用されます。 永久データベース ユーザーのセッション制約値を参照してください。
- 文によってプロキシ ユーザーが設定され、ユーザーが永久データベース ユーザーも兼ねている場合、通常の永久ユーザー制約階層(プロファイルを含む)に従って、永久ユーザーのデフォルトの制約値が使用されます。 永久データベース ユーザーのセッション制約値を参照してください。
- 文によってプロキシ ユーザーが設定され、ユーザーが永久データベース ユーザーを兼ねていない場合、セッション制約値を設定できず、SET SESSION CONSTRAINT文も許可されません。その結果、永久データベース ユーザーではないプロキシ ユーザーは、行レベル セキュリティ テーブルにアクセスできません。
後続のSET QUERY_BAND処理(UPDATEオプションなし)。
信頼済みユーザーのアプリケーションが後続のSET QUERY_BAND文を更新オプションなしで実行依頼すると、セッションで現在アクティブな制約値は空のセットにリセットされます。セッションの新しい制約値は、最初のSET QUERY_BAND処理に示すルールに従って決定されます。
後続のSET QUERY_BAND処理(UPDATEオプションあり)
信頼済みユーザーのアプリケーションが以降のSET QUERY_BAND文を更新オプションと共に実行依頼すると、更新用に生成される制約値は、セッションにプロキシ ユーザーが現在割り当てられているかどうかによって決定されます。
- セッションで以前、プロキシ ユーザーを定義せず、SET QUERY_BAND更新によって、永久データベース ユーザーであるプロキシ ユーザーが追加されると、永久ユーザーの通常の制約階層を使ってセッション制約値が決定されます。ユーザーはSET SESSION CONSTRAINTを使用して、他の永久ユーザー制約値に値を変更することができます。
- セッションで以前、プロキシ ユーザーを定義せず、SET QUERY_BAND更新によって、永久データベース ユーザーではないプロキシ ユーザーが追加されると、セッションに割り当てられる制約値はなくなります。ユーザーは行レベル セキュリティ テーブルにアクセスすることはできません。
- セッションで以前、プロキシ ユーザーを定義していて、SET QUERY_BAND更新によって新しいプロキシ ユーザーが定義されると、セッションの制約値は、新しいプロキシ ユーザーが永久ユーザーも兼ねているかどうかによって決定されます。
- ユーザーが永久ユーザーである場合、永久ユーザーの通常の制約階層を使用してセッションの制約値が決定されます。ユーザーはSET SESSION CONSTRAINT文を使用して、セッションのアクティブな制約値を、他の使用可能なユーザーまたはプロファイルの値に変更できます。
- ユーザーが永久ユーザーを兼ねていない場合、制約値はセッションに割り当てられません。セッションのアクティブな制約値を変更するためのSET SESSION CONSTRAINT文はエラーが発生して拒否されます。
END TRANSACTION処理
ユーザーが、信頼済みセッションの間にトランザクションを終了する文を実行する場合、セッションの制約値はユーザーがプロキシ ユーザーであるかに応じて決定されます。
- プロキシ ユーザーが、現在のトランザクションでのみセッションに割り当てられている場合、セッションに割り当てられた制約値は、セッションの初期接続時の設定、つまり、アプリケーション ログオン ユーザー用の設定に戻ります。
- プロキシ ユーザーが、すべてのトランザクションについてセッションに割り当てられている場合、制約値は変更されず、プロキシ ユーザーに割り当てられた値のままになります。