動的 SQL ステートメントの許可動作
許可動作に影響を与える 2 つの重要な要因として、DYNAMICRULES の値とパッケージのランタイム環境があります。 DYNAMICRULES 値とランタイム環境の組み合わせにより、動的 SQL 属性の値が決まります。 これらの属性値は、許可動作と呼ばれます。
BINDまたはREBINDコマンドのDYNAMICRULESオプションは、以下の動的SQL属性の実行時に適用される値を決定します
- 許可検査のために使用される許可 ID またはロール
- 非修飾オブジェクトに使用される修飾子
- Db2が動的 SQL ステートメントを構文解析および意味的に検査するために使用するアプリケーション・プログラミング・オプションのソース
DYNAMICRULES オプションは、動的 SQL ステートメントに GRANT、 REVOKE、ALTER、CREATE、DROP、および RENAME ステートメントを含めることができるかどうかも決定します。
DYNAMICRULES 値に加え、パッケージの実行時環境は、 動的 SQL ステートメントが実行時にどのように振る舞うかを制御します。 次の 2 つのランタイム環境が考えられます。
- パッケージがスタンドアロン・プログラムの一部として実行される
- パッケージが、ストアード・プロシージャーまたはユーザー定義関数パッケージとして稼働するか、
あるいはストアード・プロシージャーまたはユーザー定義関数のもとで稼働する。
ストアード・プロシージャーまたはユーザー定義関数のもとで実行されるパッケージは、 関連するプログラムが以下のいずれかの条件に該当するパッケージです。
- そのプログラムが、ストアード・プロシージャーまたはユーザー定義関数によって呼び出される。
- そのプログラムが、ストアード・プロシージャーまたはユーザー定義関数で開始される
一連のネストされた呼び出しの中にある。