問い合わせの承認
SELECT文、fullselect 、select-statement、および subselectクエリフォームには、同じ認証ルールが適用されます。
あらゆる種類のクエリについて、以下に定義される特権セットには、以下の権限または特権セットのいずれかを含める必要があります
- ステートメントで指定したそれぞれの表またはビューについて、特権セットに、次のいずれかが含まれていなければいけません。
- 表またはビューの所有権
- 表またはビューに対する SELECT 特権
- データベースに対する DBADM 権限 (表のみ)
CREATE VIEW文のフルセレクトで特定された各テーブルまたはビューに対するSELECT権限、および各関数に対するEXECUTE権限(ビューのみ)など、必要な権限。
データベースを暗黙的に作成する場合、データベース特権が暗黙的 データベースまたは DSNDB04 上になければなりません。
- SYSADM 権限
- SYSCTRL 権限 (カタログ表のみ)
- DATAACCESS 権限
- インストール SYSOPR 権限 (カタログ表とシステム表のみ)
- ステートメントで識別されるユーザー定義関数ごとに、以下のいずれか:
- 関数に対する EXECUTE 特権
- 関数の所有権
- SYSADM 権限
- DATAACCESS 権限
- ステートメント内で識別されるシーケンス・オブジェクトごとに、以下のいずれかになります。
- シーケンス・オブジェクトに対する USAGE 特権
- シーケンス・オブジェクトの所有権
- DATAACCESS 権限
SELECT文がDECLARE CURSOR文の一部である場合、権限セットは、プランまたはパッケージの所有者の認証IDが保持する権限です。
SELECT文に SQLデータ変更文が含まれる場合、権限セットには、対象のテーブルまたはビューに対するSELECT権限と、SQLデータ変更文(INSERT権限、UPDATE権限、またはDELETE権限)に対する適切な権限が含まれていなければなりません。
SELECT文がアクティブな行または列アクセス制御を含むテーブルを参照し、そのテーブルに対して行権限または列マスクが定義されている場合、その文の認証IDまたはロールは、それらの行権限または列マスクの定義で指定されているオブジェクトを参照する権限を必要としません。
クエリ用の特権セット
アプリケーション・プログラムにこの ステートメントを組み込む場合、特権セットは、プランまたはパッケージの所有者が持つ特権となります。
ステートメントが動的に準備され、アプリケーションが信頼できるコンテキストにバインドされている場合、特権セットはそのロールが持つ特権のセットになります。 それ以外の場合、特権セットは、オプション DYNAMICRULES によって指定される動的 SQL ステートメントの動作によって異なります。
- 実行動作
- 特権セットは、プロセスの各許可 ID が持つ 特権セットの和集合です。
- バインド動作
- 特権セットは、プランまたはパッケージ所有者の許可 ID が持つ特権です。
- 定義動作
- 特権セットは、ストアード・プロシージャーまたはユーザー定義関数の所有者の許可 ID が持つ特権です。
- 呼び出し動作
- 特権セットは、ストアード・プロシージャーまたはユーザー定義関数の呼び出し側の許可 ID が持つ特権です。
実行、バインド、定義、または呼び出しの動作を指定するDYNAMICRULES値の一覧については、表1 を参照してください。
いずれかの形式の照会を別のステートメントのコンポーネントとして使う場合、 照会に適用される許可規則については、そのステートメントの解説に明記し てあります。 たとえば、CREATE VIEW ステートメントのサブセレクトに適用される承認ルールについては、CREATE VIEW ステートメントを参照してください。
ユーザーのシステムでアクセス制御出口ルーチン (DSNX@XAC) を使用している場合は、その出口ルーチンがここにリスト されている規則の代わりに許可規則を管理します。