プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
12c (12.2.1.1.0)
E77227-02
目次へ移動
目次

前
前へ
次
次へ

行レベル・セキュリティの設定

リポジトリ内またはデータベース内に行レベル・セキュリティを設定するように選択できます。

リポジトリ内に行レベル・セキュリティを実装することには多くの利点があります。それらを次に示します。

一方、データベース内に行レベル・セキュリティを実装することは、複数のアプリケーションでデータベースを共有するような状況において有用です。データベース内に行レベル・セキュリティを実装する場合であっても、リポジトリ内にオブジェクト権限を定義し適用する必要があることに注意してください。

リポジトリとデータベースの両方に行レベル・セキュリティを設定することが可能ですが、特別な必要性がないかぎり、両方の場所で行レベル・セキュリティを施行することは通常はありません。

この項では、次の項目について説明します。

リポジトリ内の行レベル・セキュリティ(データ・フィルタ)の設定

データ・フィルタは、リポジトリ内に行レベルのセキュリティ・ルールを施行する手段を提供するセキュリティ機能です。

データ・フィルタは管理ツールを使用してリポジトリ内に設定され、特定のアプリケーション・ロールに適用されます。

データベース内に行レベル・セキュリティを実装する場合、通常、データ・フィルタは設定しません。なぜなら、この場合、行レベル・セキュリティのポリシーはOracle BIサーバーではなく、データベースによって施行されるためです。

データ・フィルタは、ビジネス・モデルとマッピング・レイヤー内、およびプレゼンテーション・レイヤー内の両方のオブジェクトに設定できます。論理オブジェクトにフィルタを適用すると、プレゼンテーション・レイヤーのそのオブジェクトを使用するすべてのオブジェクトに影響が及びます。プレゼンテーション・レイヤーのオブジェクトにフィルタを設定すると、基礎となる論理オブジェクトに設定されるすべてのフィルタに加えて、このフィルタが適用されます。

この図は、Oracle BIサーバー内でデータ・フィルタ・ルールが施行される方法を示しています。セキュリティ・ルールは接続するすべてのクライアントに適用され、たとえ論理SQL問合せが変更される場合であっても違反は許可されません。

この例では、アプリケーション・ロールにフィルタが適用されています。Anne Green(そのロールのメンバー)がリクエストを送信するとき、返される結果はこのフィルタに基づいて制限されます。管理者ユーザーのアプリケーション・ロールにはフィルタは適用されないため、すべての結果が返されます。Oracle BIサーバーによって生成されるSQLでは、定義済のすべてのデータ・フィルタが考慮されます。

データ・フィルタは、個々のユーザーに対してではなく、必ず特定のアプリケーション・ロールに対して設定してください。

データ・フィルタを設定して、問合せの行レベルの認可ルールを適用するには:

  1. 管理ツールでリポジトリを開きます。
  2. 管理」→「アイデンティティ」を選択します。
  3. 「Identity Manager」ダイアログのツリー・ペインで、「BIリポジトリ」を選択します。
  4. 右のペインで「アプリケーション・ロール」タブを選択し、データ・フィルタを設定するアプリケーション・ロールをダブルクリックします。

    オフライン・モードの場合、以前にオンライン・モードで変更されているアプリケーション・ロールを除き、リストにアプリケーション・ロールは表示されません。詳細は、オフライン・モードでのデータ・アクセス・セキュリティの適用についてを参照してください。

  5. 「アプリケーション・ロール」ダイアログで「権限」をクリックします。
  6. 「ユーザー/アプリケーション・ロール権限」ダイアログで、「データ・フィルタ」タブをクリックします。

    フィルタを作成するには、最初にフィルタの適用先となるオブジェクトを追加します。次に、個々のオブジェクトに対してフィルタ式情報を設定します。

  7. フィルタの適用先となるオブジェクトを追加するには、次のいずれかの手順を実行します。
    • 「追加」ボタンをクリックします。次に、目的のオブジェクトを見つけて選択し、「選択」をクリックします。

    • 空の行の「名前」フィールドをクリックします。次に、目的のオブジェクトを見つけて選択し、「選択」をクリックします。

  8. 個々のオブジェクトのフィルタ式を入力するには、次のいずれかの手順を実行します。
    • データ・フィルタを選択し、「式ビルダー」ボタンをクリックします。式ビルダーでフィルタ式を作成し、「OK」をクリックします。

    • 目的のフィルタの「データ・フィルタ」をクリックし、フィルタ式を入力します。

    たとえば、表内の他の列の値の範囲に基づいて結果を制限するための、「"Sample Sales"."D2 Market"."M00 Mkt Key" > 5」のようなフィルタを定義できます。

    フィルタ定義の中ではリポジトリ変数およびセッション変数を使用することもできます。それらの変数を含める場合は、正しい構文になるように式ビルダーを使用してください。

  9. オプションで、「ステータス」リストから各フィルタのステータスを選択することができます。次のいずれかのオプションを選択できます。
    • 有効: このフィルタはオブジェクトにアクセスするすべての問合せに適用されます。

    • 無効: このフィルタは使用されず、上位の優先度レベルのオブジェクトに適用される他のフィルタ(アプリケーション・ロールを通じて適用されるフィルタなど)も使用されません。

    • 無視: このフィルタは使用されません。ただし、オブジェクトに適用される他のフィルタ(アプリケーション・ロールを通じて適用されるフィルタなど)は使用されます。有効になっているフィルタが他にない場合、フィルタは一切適用されません。

  10. 「データ・フィルタ」タブでは、新しいフィルタの定義に加えて、他の操作を実行することもできます。この表は、その他のボタンおよびオプションの一覧とその説明です。
    オプション名 説明

    サブジェクト領域

    個別のサブジェクト・エリアのデータ・フィルタのみを表示するにはそのサブジェクト・エリアを選択します。すべてのフィルタを表示するには「すべて」を選択します。

    フィルタ総数

    現在のユーザーまたはアプリケーション・ロールに対して定義されているデータ・フィルタの総数を表示します。

    追加

    「追加」アイコン

    データ・フィルタを適用するオブジェクトを追加するには、「追加」をクリックして「参照」ダイアログを開きます。

    削除

    「削除」アイコン

    フィルタを削除するには、行を選択して「削除」をクリックします。

    参照

    「参照」アイコン

    フィルタの適用先となるオブジェクトを変更するには、行を選択して「参照」をクリックします。

    「式の編集」(式ビルダー)

    「式の編集」アイコン

    特定のオブジェクトにフィルタ式を追加するか、または変更するには、行を選択して「式の編集」をクリックします。行にフィルタ式を適用する前に、オブジェクトを追加する必要があります。

    検索

    「検索」フィールド、「下方検索」アイコン、「上方検索」アイコン

    特定の文字列を検索するには、「検索」フィールドにテキストを入力し、「下方検索」または「上方検索Find Up」をクリックします。

  11. OK」をクリックし、再度「OK」をクリックして、Identity Managerに戻ります。

データベース内の行レベル・セキュリティの設定

Oracle Business Intelligenceを設定するには、データベース内で行レベル・セキュリティを実装する必要があります。接続プールは、Oracle BIサーバーが各ユーザーの資格証明をデータベースに渡すように構成できます。

データベースはこの資格証明を使用して、自身が持つ行レベル・セキュリティ・ルールをユーザー問合せに適用します。

行レベルのデータベース・セキュリティは、データベース認証とは異なります。Oracle Business Intelligence Enterprise Editionセキュリティ・ガイドの認証に関する項を参照してください。行レベル・データベース・セキュリティはデータベースの認可を提供します。言い換えると、これはデータベース内の特定の行に対してアクセス・セキュリティを適用します。

この図は、Oracle Business Intelligenceの問合せにおいて、データベース内で行レベル・セキュリティが施行される方法を示しています。セキュリティ・ルールは接続するすべてのクライアントに適用され、たとえ論理SQL問合せが変更される場合であっても違反は許可されません。この例では、Oracle BIサーバーによって生成されるSQL問合せが同じであったとしても、問合せを生成したユーザーに応じて返される結果は異なります。返される結果は、データベース内に作成、施行されているルールに基づきます。

データベース内の行レベル・セキュリティ用にOracle Business Intelligenceを設定するのに加えて、データベース自体に、ユーザー、権限およびセキュリティ・ポリシーのセットを定義する必要があります。詳細は、データベースのドキュメントを参照してください。

この構成については、次の点に注意してください。

  • 行レベルのセキュリティは、SSOを使用しているときや、偽装(デリバーなど)が関与するケースでは機能しません。これは、エンド・ユーザーのパスワードがOracle BIサーバーでは使用できないためです。

  • 接続スクリプトを使用して、Oracle Databaseデータ・ソースに対して同じ機能を実行できます。

  • EssbaseまたはHyperion Financial Managementデータ・ソースの場合、接続プールでは、SSOを実装するための追加オプションが表示されます。

データベース内の行レベル・アクセス・セキュリティ用にOracle Business Intelligenceを設定するには:

  1. 管理ツールでリポジトリを開きます。
  2. データベース・レベルのセキュリティを設定するデータベースに関連付けられている接続プールをダブルクリックします。
  3. 「接続プール」ダイアログの「一般」タブで、「共有ログオン」を選択し、「ユーザー名」フィールドおよび「パスワード」フィールドに、:USERおよび:PASSWORDと入力します。:USERおよび:PASSWORDの構文を使用すると、データベースへのログイン時に、自動的にユーザーの資格証明の値が渡されます。:USERおよび:PASSWORDの構文は、セッション変数を参照しません。

    注意:

    データベース・セッション・コンテキストを使用して、データベースにエンド・ユーザーの識別情報を渡すことができます。セッション・コンテキストを設定するには接続プール・スクリプトを使用します。この手法はデータベース認証に依存しません。

  4. 「接続プール」ダイアログで「OK」をクリックします。
  5. データベース・レベルのセキュリティの設定対象となるデータベース・オブジェクトをダブルクリックします。
  6. 「データベース」ダイアログで「仮想プライベート・データベース」を選択します。このオプションを選択することにより、各ユーザーのキャッシュ・エントリがOracle BIサーバーによって保護されるようになります。
  7. 「データベース」ダイアログで「OK」をクリックします。

データベース内に行レベル・セキュリティを設定した後、プレゼンテーション・レイヤーなどのオブジェクトに対応するリポジトリ内でオブジェクト権限を設定する必要があります。また、問合せ制限(ガバナー)を設定することもできます。詳細は、オブジェクト権限の設定および問合せ制限の設定を参照してください。