20.5.2 認可スキームの作成および編集

認可スキームを作成および編集する方法について学習します。認可スキームは、アプリケーションまたはアプリケーション・コンポーネントまたはコントロールに割り当てる前に作成する必要があります。

20.5.2.1 認可スキーム・タイプについて

認可スキーム・タイプは、認可スキームを作成するときに選択します。

認可スキーム・タイプにより、認可スキームの適用方法が決まります。開発者は、新しい認可タイプ・プラグインを作成して、このリストを拡張できます。

表20-1 認可スキーム・タイプ

認可スキーム・タイプ 説明

EXISTS SQL問合せ

認可スキームが1行以上を戻す場合は合格、行を戻さない場合は不合格となる問合せを入力します

NOT EXISTS SQL問合せ

認可スキームが行を戻さない場合は合格、1行以上を戻す場合は不合格となる問合せを入力します

ブールを戻すPL/SQLファンクション

ファンクション本体を入力します。ファンクションがtrueを戻す場合、認可は成功します。

式1のアイテムがNULL

アイテム名を入力します。アイテムがnullの場合、認可は成功します。

式1のアイテムがNOT NULL

アイテム名を入力します。アイテムがnullでない場合、認可は成功します。

式1のアイテムの値 = 式2

アイテム名と値を入力します。アイテムの値が認可値と等しい場合、認可は成功します。

式1のアイテムの値 != 式2

アイテム名と値を入力します。アイテムの値が認可値と等しくない場合、認可は成功します。

式1のプリファレンスの値 != 式2

プリファレンス名と値を入力します。プリファレンスの値が認可値と等しくない場合、認可は成功します。

式1のプリファレンスの値 = 式2

プリファレンス名と値を入力します。プリファレンスの値が認可値と等しい場合、認可は成功します。

グループ内

グループ名を入力します。グループがセッションの動的グループとして有効な場合、認可は成功します。『Oracle Application Express APIリファレンス』のAPEX_AUTHORIZATION.ENABLE_DYNAMIC_GROUPSに関する項を参照してください。

アプリケーションでApplication Expressアカウント認証が使用される場合、このチェックにはユーザーに付与されたワークスペース・グループも含まれます。アプリケーションでデータベース認証が使用される場合、このチェックにはユーザーに付与されたデータベース・ロールも含まれます。

グループ内にない

グループ名を入力します。グループがセッションの動的グループとして有効でない場合、認可は成功します。

20.5.2.2 認可スキームの作成

共有コンポーネント・ページで認可スキームを作成します。

認可スキームを作成するには:

  1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

  2. アプリケーションを選択します。

  3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

    共有コンポーネント・ページが表示されます。

  4. 「セキュリティ」で、「認可スキーム」を選択します。

  5. 「作成」をクリックします。

  6. 次のいずれかの項目を選択して、認可スキームの作成方法を指定します。

    • 最初から

    • 既存の認可スキームのコピーとして

  7. 認可スキームの作成 - 詳細で、次のステップを実行します。

    1. 名前 - この認可スキームを識別する一意の名前を入力します。

    2. スキーム・タイプ - この認可スキームが適用される方法を選択します。認可スキーム・タイプについてを参照してください。

    3. スキームの違反時に表示されるエラー・メッセージの指定 - 認可スキームが失敗した(つまり、カレント・ユーザーがセキュリティ・チェックに失敗した)場合に表示されるエラー・テキストを入力します。

    4. 認可スキームの検証 - 認可スキームはセッションの最初の使用時に評価されます。その後の使用で再評価するかどうか、およびメモリーに保存された結果をいつ取得できるかを制御するには、このオプションを使用します。

    詳細は、フィールドレベル・ヘルプを参照してください。

  8. 「認可スキームの作成」をクリックします。

20.5.2.3 既存の認可スキーム属性の編集

既存の認可スキーム属性を編集します。

既存の認可スキームの属性を編集するには:

  1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
  2. アプリケーションを選択します。
  3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

    共有コンポーネント・ページが表示されます。

  4. 「セキュリティ」で、「認可スキーム」を選択します。

    認可スキーム・ページが表示されます。デフォルトでは、各スキームがアイコンとして表示されます。ページ上部の検索バーを使用してページの概観をカスタマイズできます。

  5. 認可スキームを選択します。
  6. 対象となる属性を編集します。

    詳細は、フィールドレベル・ヘルプを参照してください。

  7. 変更を保存するには、「変更の適用」をクリックします。

20.5.2.4 評価ポイント属性の変更

「評価ポイント」、「認可スキームの検証」属性を使用して、認可スキームを検証するタイミングを制御します。

認可スキームは、セッションで最初に使用されるときに評価されます。「認可スキームの検証」属性は、その後の使用で再評価するかどうか、およびメモリーに保存された結果をいつ取得できるかを制御します。

認可スキームの評価ポイントを変更するには:

  1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
  2. アプリケーションを選択します。
  3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

    共有コンポーネント・ページが表示されます。

  4. 「セキュリティ」で、「認可スキーム」を選択します。

    認可スキーム・ページが表示されます。

    デフォルトでは、各スキームがアイコンとして表示されます。ページ上部の検索バーを使用してページの概観をカスタマイズできます。

  5. 認可スキームを選択します。
  6. 「評価ポイント」までスクロールして、「認可スキームの検証」属性を編集します。オプションは次のとおりです。
    • セッションごとに1回 - 1回のみ評価し、その後は常にメモリーに保存された結果を使用します。

    • ページ・ビューごとに1回 - 処理されるリクエストごとに1回評価します。認可スキームがページ上の複数のコンポーネントで参照される場合は、メモリーに保存された結果を使用します。

    • コンポーネントごとに1回 - 認可スキームを参照するコンポーネントごとに1回評価しますが、結果をセッションに保存します。スキームのレンダリングまたは処理に対する以降のリクエストでは、コンポーネントについて記憶された結果を使用します。

    • 常時(キャッシュなし) - 認可スキームは常に評価されます。

    詳細は、フィールドレベル・ヘルプを参照してください。

  7. 変更を保存するには、「変更の適用」をクリックします。

ヒント:

デフォルト値の「セッションごとに1回」が最も効率的です。認可チェックが、セッション・ステートの変化やセッション全体で一貫しない他の要因に依存する場合は、別の値を選択する必要があります。

20.5.2.5 認可スキーム・ステートのリセット

セッションの認可スキーム・ステートをリセットするAPIをコールします。

認可スキームがセッションごとに1回検証される場合、Oracle Application Expressは各ユーザーのセッション・キャッシュ内に検証結果をキャッシュします。セッションの認可スキーム・ステートは、APEX_AUTHORIZATION.RESET_CACHE APIをコールしてリセットできます。

関連項目:

『Oracle Application Express APIリファレンス』APEX_AUTHORIZATION.RESET_CACHEプロシージャに関する説明