Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 11g リリース1 (11.1.1) B63028-04 |
|
前 |
次 |
この章では、Oracle BIリポジトリ・オブジェクトで使用できる様々なタイプのデータ・アクセス・セキュリティに関する情報を提供し、それらの適用方法について説明します。
データ・アクセス・セキュリティは、データの参照および変更の権限を制御します。Oracle Business Intelligenceでは、データ・アクセス・セキュリティのいくつかの異なる手法を使用できます。そうした手法には、行レベル・セキュリティ(リポジトリ内またはデータベース内に実装)、オブジェクト権限、問合せ制限があります。
SSL接続の設定、ユーザー、グループおよびアプリケーション・ロールの管理、カスタムLDAPサーバーの設定、カスタム認証の管理などの他のセキュリティ・タスクは、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』に記載されています。データ・アクセス・セキュリティを実装する前に、ユーザーおよびアプリケーション・ロールを作成する必要があることに注意してください。
オンライン・モードの管理ツールでデータ・アクセス・セキュリティを実装するように計画してください。オフライン・モードでデータ・アクセス・セキュリティのタスクを実行する必要がある場合は、最初に「オフライン・モードでのデータ・アクセス・セキュリティの適用について」を読んでください。
データ・アクセス・セキュリティの監査は、Oracle Business Intelligenceの使用状況トラッキング機能によって実現されます。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の使用状況トラッキングの管理に関する項を参照してください。
この章には次のトピックが含まれます:
メタデータ・リポジトリを開発したら、ソース・データへのアクセスを制御するためのデータ・セキュリティ・アーキテクチャを設定する必要があります。データ・アクセス・セキュリティは次の目標を達成します。
問合せ対象となるデータベース内のビジネス・データを保護する
リポジトリ・メタデータ(メジャーの定義など)を保護する
個々のユーザーがシステムの全体的なパフォーマンスに悪影響を及ぼすのを防止する
Oracle Business Intelligenceでは、行レベル・セキュリティ、オブジェクト権限、問合せ制限(ガバナー)の3種類のデータ・セキュリティをサポートしています。オブジェクト権限および問合せ制限はリポジトリ内に設定され、Oracle BIサーバーのみによって施行されます。一方、行レベル・セキュリティはリポジトリ内とデータベース内のいずれにも実装し施行することが可能です。
データベース内に行レベル・セキュリティを実装するように選択した場合であっても、リポジトリ内にオブジェクト権限および問合せ制限を設定する必要があります。個々の表または列にデータベース・レベルのオブジェクト制限を適用することも可能ですが、ユーザーがアクセス権を持たないオブジェクトが、すべてのクライアントで可視になります(それらへの問合せは失敗します)。リポジトリ内にオブジェクト権限を設定し、ユーザーがアクセス権を持たないオブジェクトがすべてのクライアントで非表示になるようにする方法のほうが優れています。
Oracle BIサーバーには様々なクライアントが接続可能であるため、Oracle BIプレゼンテーション・サービス内でデータ・セキュリティを施行することはできません。Oracle BIプレゼンテーション・サービスはセキュリティ制御の広範なセットを提供しており、それらを利用することによって、Oracle Business Intelligenceユーザー・インタフェース内の機能へのアクセス権限を設定したり、ダッシュボードや分析オブジェクトへのアクセス権限を設定したりすることができます。ただし、Oracle BIプレゼンテーション・サービスはデータ・アクセス・セキュリティを提供していません。セキュリティ制御をOracle BIプレゼンテーション・サービスのみに実装すると、SQLインジェクションによるハッカー攻撃にさらされたり、他のセキュリティの脆弱性が生じたりします。接続するすべてのクライアントに対して適用されるルールを作成するには、リポジトリ内にオブジェクト・レベルのセキュリティを提供する必要があります。
Oracle BIプレゼンテーション・サービスで利用可能なセキュリティの詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』を参照してください。
Oracle Business Intelligenceのセキュリティ・タスクは、このガイド、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』および他のソースに記載されています。表14-1は、Oracle Business Intelligenceのセキュリティ・タスクと、それらの詳細情報の記載場所をまとめたものです。
表14-1 Oracle Business Intelligenceのセキュリティ・タスク
タスク | 場所 |
---|---|
『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のデフォルトのセキュリティ構成を使用したセキュリティ管理に関する項 |
|
『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』の埋込みWebLogic LDAPサーバーでのユーザーとグループの管理に関する項 |
|
『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』のポリシー・ストアの管理に関する項 |
|
ポリシー・ストア内でアプリケーション・ロールとともに使用されるデフォルトのOracle Business Intelligenceの権限の表示と理解 |
『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のデフォルトの権限に関する項 |
『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のデフォルトの資格証明に関する項 |
|
オフライン・モードでのデータ・アクセス・セキュリティの適用、およびプレースホルダ・アプリケーション・ロールの設定 |
オフライン・モードでのデータ・アクセス・セキュリティの適用について |
行レベル・データ・セキュリティの設定 |
|
リポジトリのオブジェクト権限の設定 |
|
問合せ制限の設定(ガバナー) |
|
管理ツールでのユーザーの確認 |
|
『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のSSO認証の有効化に関する項 |
|
『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のOracle Business IntelligenceにおけるSSL構成に関する項 |
|
『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のカスタム認証プラグインを使用した認証に関する項 |
リポジトリ内またはデータベース内に行レベル・セキュリティを設定するように選択できます。リポジトリ内に行レベル・セキュリティを実装することには多くの利点があります。それらを次に示します。
すべてのユーザーがデータベース接続プールを共有することによって、パフォーマンスが向上します。
すべてのユーザーがキャッシュを共有することによって、パフォーマンスが向上します。
多くのフェデレーテッド・データ・ソースに適用されるセキュリティ・ルールを定義し、維持することができます。
一方、データベース内に行レベル・セキュリティを実装することは、複数のアプリケーションでデータベースを共有するような状況において有用です。データベース内に行レベル・セキュリティを実装する場合であっても、リポジトリ内にオブジェクト権限を定義し適用する必要があることに注意してください。
リポジトリとデータベースの両方に行レベル・セキュリティを設定することが可能ですが、特別な必要性がないかぎり、両方の場所で行レベル・セキュリティを施行することは通常はありません。
この項には次のトピックが含まれます:
データ・フィルタは、リポジトリ内に行レベルのセキュリティ・ルールを施行する手段を提供するセキュリティ機能です。データ・フィルタは管理ツールを使用してリポジトリ内に設定され、特定のアプリケーション・ロールに適用されます。データベース内に行レベル・セキュリティを実装する場合、通常、データ・フィルタは設定しません。なぜなら、この場合、行レベル・セキュリティのポリシーはOracle BIサーバーではなく、データベースによって施行されるからです。
データ・フィルタは、ビジネス・モデルとマッピング・レイヤー内、およびプレゼンテーション・レイヤー内の両方のオブジェクトに設定できます。論理オブジェクトにフィルタを適用すると、プレゼンテーション・レイヤーのそのオブジェクトを使用するすべてのオブジェクトに影響が及びます。プレゼンテーション・レイヤーのオブジェクトにフィルタを設定すると、基礎となる論理オブジェクトに設定されるすべてのフィルタに加えて、このフィルタが適用されます。
図14-1は、Oracle BIサーバー内でデータ・フィルタ・ルールが施行される方法を示しています。セキュリティ・ルールは接続するすべてのクライアントに適用され、たとえ論理SQL問合せが変更される場合であっても違反は許可されません。
この例では、アプリケーション・ロールにフィルタが適用されています。Anne Green(そのロールのメンバー)がリクエストを送信するとき、返される結果はこのフィルタに基づいて制限されます。管理者ユーザーのアプリケーション・ロールにはフィルタは適用されないため、すべての結果が返されます。Oracle BIサーバーによって生成されるSQLでは、定義済のすべてのデータ・フィルタが考慮されます。
データ・フィルタは、個々のユーザーに対してではなく、必ず特定のアプリケーション・ロールに対して設定してください。
データ・フィルタを設定して、問合せの行レベルの認可ルールを適用するには:
管理ツールでリポジトリを開きます。
「管理」→「アイデンティティ」を選択します。
「Identity Manager」ダイアログのツリー・ペインで、「BIリポジトリ」を選択します。
右のペインで「アプリケーション・ロール」タブを選択し、データ・フィルタを設定するアプリケーション・ロールをダブルクリックします。
オフライン・モードの場合、以前にオンライン・モードで変更されているアプリケーション・ロールを除き、リストにアプリケーション・ロールは表示されません。詳細は、「オフライン・モードでのデータ・アクセス・セキュリティの適用について」を参照してください。
「アプリケーション・ロール」ダイアログで「権限」をクリックします。
「ユーザー/アプリケーション・ロール権限」ダイアログで、「データ・フィルタ」タブをクリックします。
フィルタを作成するには、最初にフィルタの適用先となるオブジェクトを追加します。次に、個々のオブジェクトに対してフィルタ式情報を設定します。
フィルタの適用先となるオブジェクトを追加するには、次のいずれかの手順を実行します。
「追加」ボタンをクリックします。次に、目的のオブジェクトを見つけ、「選択」をクリックします。
空の行の「名前」フィールドをクリックします。次に、目的のオブジェクトを見つけて選択し、「選択」をクリックします。
個々のオブジェクトのフィルタ式を入力するには、次のいずれかの手順を実行します。
データ・フィルタを選択し、「式ビルダー」ボタンをクリックします。式ビルダーでフィルタ式を作成し、「OK」をクリックします。
目的のフィルタの「データ・フィルタ」をクリックし、フィルタ式を入力します。
たとえば、表内の他の列の値の範囲に基づいて結果を制限するための、「"Sample Sales"."D2 Market"."M00 Mkt Key" > 5
」のようなフィルタを定義できます。
フィルタ定義の中ではリポジトリ変数およびセッション変数を使用することもできます。それらの変数を含める場合は、正しい構文になるように式ビルダーを使用してください。
オプションで、「ステータス」リストから各フィルタのステータスを選択することができます。次のいずれかのオプションを選択できます。
有効: このフィルタはオブジェクトにアクセスするすべての問合せに適用されます。
無効: このフィルタは使用されず、上位の優先度レベルのオブジェクトに適用される他のフィルタ(アプリケーション・ロールを通じて適用されるフィルタなど)も使用されません。
無視: このフィルタは使用されません。ただし、オブジェクトに適用される他のフィルタ(アプリケーション・ロールを通じて適用されるフィルタなど)は使用されます。有効になっているフィルタが他にない場合、フィルタは一切適用されません。
「データ・フィルタ」タブでは、新しいフィルタの定義に加えて、他の操作を実行することもできます。表14-2は、その他のボタンおよびオプションの一覧とその説明です。
表14-2 「データ・フィルタ」タブ: ボタンおよびオプション
オプション名 | 説明 |
---|---|
サブジェクト・エリア |
個別のサブジェクト・エリアのデータ・フィルタのみを表示するにはそのサブジェクト・エリアを選択します。すべてのフィルタを表示するには「すべて」を選択します。 |
フィルタ総数 |
現在のユーザーまたはアプリケーション・ロールに対して定義されているデータ・フィルタの総数を表示します。 |
追加 |
データ・フィルタを適用するオブジェクトを追加するには、「追加」をクリックして「参照」ダイアログを開きます。 |
削除 |
フィルタを削除するには、行を選択して「削除」をクリックします。 |
参照 |
フィルタの適用先となるオブジェクトを変更するには、行を選択して「参照」をクリックします。 |
「式の編集」(式ビルダー) |
特定のオブジェクトにフィルタ式を追加するか、または変更するには、行を選択して「式の編集」をクリックします。行にフィルタ式を適用する前に、オブジェクトを追加する必要があります。 |
検索 |
特定の文字列を検索するには、「検索」フィールドにテキストを入力し、「下方検索」または「上方検索Find Up」をクリックします。 |
「OK」をクリックし、再度「OK」をクリックして、Identity Managerに戻ります。
データベース内に実装した行レベル・セキュリティ用にOracle Business Intelligenceを設定する場合、Oracle BIサーバーがデータベースに対して各ユーザーの資格証明を送信できるように、接続プールを構成することができます。データベースはこの資格証明を使用して、自身が持つ行レベル・セキュリティ・ルールをユーザー問合せに適用します。
このトピックで説明している行レベル・データベース・セキュリティは、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』のトピックで説明しているデータベースの認証とは異なるものです。行レベル・データベース・セキュリティはデータベースの認可を提供します。言い換えると、これはデータベース内の特定の行に対してアクセス・セキュリティを適用します。
図14-2は、Oracle Business Intelligenceの問合せにおいて、データベース内で行レベル・セキュリティが施行される方法を示しています。セキュリティ・ルールは接続するすべてのクライアントに適用され、たとえ論理SQL問合せが変更される場合であっても違反は許可されません。この例では、Oracle BIサーバーによって生成されるSQL問合せが同じであったとしても、問合せを生成したユーザーに応じて返される結果は異なります。返される結果は、データベース内に作成、施行されているルールに基づきます。
データベース内の行レベル・セキュリティ用にOracle Business Intelligenceを設定するのに加えて、データベース自体に、ユーザー、権限およびセキュリティ・ポリシーのセットを定義する必要があります。詳細は、データベースのドキュメントを参照してください。
この構成については、次の点に注意してください。
このアプローチはSSOを使用しているとき、または、偽装(デリバーなど)が関与するケースでは機能しません。その理由は、エンド・ユーザーのパスワードがOracle BIサーバーでは使用できないためです。
接続スクリプトを使用して、Oracle Databaseデータ・ソースに対して同じ機能を実行できます。
EssbaseまたはHyperion Financial Managementデータ・ソースの場合、接続プールでは、SSOを実装するための追加オプションが表示されます。詳細は、「EssbaseおよびHyperion Financial Managementデータ・ソースのSSOの構成」を参照してください。
データベース内の行レベル・アクセス・セキュリティ用にOracle Business Intelligenceを設定するには:
管理ツールでリポジトリを開きます。
データベース・レベルのセキュリティを設定するデータベースに関連付けられている接続プールをダブルクリックします。
「接続プール」ダイアログの「一般」タブで、「共有ログオン」を選択し、「ユーザー名」フィールドおよび「パスワード」フィールドに、:USER
および:PASSWORD
と入力します。:USER
および:PASSWORD
の構文を使用すると、データベースへのログイン時に、自動的にユーザーの資格証明の値が渡されます。:USER
および:PASSWORD
の構文はセッション変数を参照しているのではないことに注意してください。
図14-3は、「接続プール」ダイアログの「一般」タブを示しています。
注意: 別の手法として、データベース・セッション・コンテキストを使用して、データベースにエンド・ユーザーの識別情報を渡すこともできます。セッション・コンテキストを設定するには接続プール・スクリプトを使用します。この手法はデータベース認証に依存しないことに注意してください。 |
「接続プール」ダイアログで「OK」をクリックします。
データベース・レベルのセキュリティの設定対象となるデータベース・オブジェクトをダブルクリックします。
「データベース」ダイアログで「仮想プライベート・データベース」を選択します。このオプションを選択することにより、各ユーザーのキャッシュ・エントリがOracle BIサーバーによって保護されるようになります。
「データベース」ダイアログで「OK」をクリックします。
データベース内に行レベル・セキュリティを設定した後、リポジトリ内にプレゼンテーション・レイヤーまたは他のオブジェクト用のオブジェクト権限を設定する必要があります。また、問合せ制限(ガバナー)を設定することもできます。詳細は、「オブジェクト権限の設定」および「問合せ制限の設定」を参照してください。
リポジトリでオブジェクト権限を設定すると、プレゼンテーション・レイヤーおよびビジネス・モデルとマッピング・レイヤーのオブジェクトへのアクセスを制御できます。オブジェクト権限は管理ツールを使用して設定します。オブジェクト権限を設定する手法は2つあります。Identity Managerで特定のアプリケーション・ロールに対して権限を設定することも、プレゼンテーション・レイヤーで個別のオブジェクトに対して権限を設定することもできます。
この項では、Identity Manager内のアプリケーション・ロールにオブジェクト権限を設定する方法について説明します。プレゼンテーション・レイヤーの個々のオブジェクトにオブジェクト権限を設定する方法の詳細は、「プレゼンテーション・レイヤー・オブジェクトに対する権限の設定」を参照してください。
多くのオブジェクトに一括で権限を定義する場合、特定のアプリケーション・ロールにオブジェクト権限を設定する方法が便利です。個々のユーザーではなく、必ず特定のアプリケーション・ロールにオブジェクト権限を設定するようにしてください。
図14-4は、ユーザーが閲覧可能な内容がオブジェクト権限によって制限される様子を示しています。セキュリティ・ルールは接続するすべてのクライアントに適用され、たとえ論理SQL問合せが変更される場合であっても違反は許可されません。この例では、管理者が属するアプリケーション・ロールにBooked Amount列へのアクセス権が付与されており、したがって管理者は返される結果を参照することができます。ユーザーAnne Greenはこのオブジェクトへのアクセス権を持つアプリケーション・ロールのメンバーではなく、アンサーのサブジェクト・エリアでこの列を参照することはできません。リクエストSQLが変更される場合であっても、設定されているアプリケーション・ロール・ベースのオブジェクト権限によって、この列の結果は返されません。
次のことに注意してください。
アプリケーション・ロールに対して、あるオブジェクトの権限が複数のソースによって許可または禁止されている場合(たとえば、明示的に設定される場合と、他の1つ以上のアプリケーション・ロールを通じて設定される場合)、優先度の順序に基づいて権限が適用されます。
子オブジェクトを持つオブジェクトへのアクセスを明示的に拒否した場合、個々のアプリケーション・ロールのメンバーであるユーザーは、子オブジェクトへのアクセスが拒否されます。たとえば、特定の論理表へのアクセスを明示的に拒否している場合、その表に関連付けられているすべての論理列へのアクセスも暗黙的に拒否することになります。
オブジェクト権限はリポジトリ変数およびセッション変数には適用されないため、これらの変数の値は保護されません。変数の名前を知っている人、または名前を推測できる人であれば誰でも、アンサーの式または論理SQL問合せの中でその変数を使用することができます。そのため、パスワードなどの機密データは、セッション変数またはリポジトリ変数の中に格納しないでください。
AuthenticatedUserアプリケーション・ロール(新しいリポジトリ・オブジェクトに関連付けられるデフォルトのアプリケーション・ロール)にデフォルトで付与する権限のレベルを制御できます。これを行うには、NQSConfig.INIファイル内のDEFAULT_PRIVILEGESパラメータを設定します。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』を参照してください。
AuthenticatedUserアプリケーション・ロールは「認証済ユーザー」を意味します。このロールは、Oracle BIリポジトリ内部のものです。これは、接続プールおよびプレゼンテーション・レイヤーのオブジェクトの「権限」ダイアログに表示されますが、Identity Managerのアプリケーション・ロールのリストには表示されません。
個々のアプリケーション・ロールに対してオブジェクト権限を設定するには:
管理ツールでリポジトリを開きます。
「管理」→「アイデンティティ」を選択します。
「Identity Manager」ダイアログのツリー・ペインで、「BIリポジトリ」を選択します。
右のペインで「アプリケーション・ロール」タブを選択し、オブジェクト権限を設定するアプリケーション・ロールをダブルクリックします。
オフライン・モードの場合、以前にオンライン・モードで変更されているアプリケーション・ロールを除き、リストにアプリケーション・ロールは表示されません。詳細は、「オフライン・モードでのデータ・アクセス・セキュリティの適用について」を参照してください。
「アプリケーション・ロール」ダイアログで「権限」をクリックします。
「ユーザー/アプリケーション・ロール権限」ダイアログの「オブジェクト権限」タブで、次のいずれかの手順を実行してオブジェクトを選択します。
「追加」ボタンをクリックします。次に、目的のオブジェクトを見つけ、「選択」をクリックします。
空の行の「名前」フィールドをクリックします。次に、目的のオブジェクトを見つけて選択し、「選択」をクリックします。
各オブジェクトに対して適切な権限を割り当てます。次のいずれかのオプションを選択できます。
読取り: このオブジェクトに対しては読取りアクセスのみを許可します。
読取り/書込み: このオブジェクトに対しては読取りと書込みの両方のアクセスを提供します。
アクセス権なし: このオブジェクトに対してはすべてのアクセスを明示的に拒否します。
「OK」をクリックし、再度「OK」をクリックして、Identity Managerに戻ります。
ユーザーは明示的に付与される権限を持つことができます。また、ユーザーはアプリケーション・ロールのメンバーシップを通じて付与される権限を持つこともできます。さらには、アプリケーション・ロールは他のアプリケーション・ロールのメンバーシップを通じて付与される権限を持つことができます。ユーザーに対して明示的に付与される権限は、アプリケーション・ロールを通じて付与される権限よりも高い優先度を持ちます。また、アプリケーション・ロールに対して明示的に付与される権限は、他のアプリケーション・ロールを通じて付与される権限よりも高い優先度を持ちます。
ユーザーまたはアプリケーション・ロールに対して、同じレベルで複数のアプリケーション・ロールが作用し、それらが競合するセキュリティ属性を持つ場合、このユーザーまたはアプリケーション・ロールには最も制限の少ないセキュリティ属性が付与されます。ある同一のオブジェクトに関して、ユーザーに対して明示的に作用する権限は、アプリケーション・ロールを通じてユーザーに付与される権限よりも高い優先度を持ちます。
一方で、フィルタ定義は常に継承されます。たとえば、User1がRole1およびRole2のメンバーであり、Role1にはフィルタ定義が含まれておりRole2には含まれていない場合、このユーザーはRole1に定義されているフィルタ定義を継承します。
オブジェクト権限は、個々のユーザーにではなく、常にアプリケーション・ロールに対して定義するようにしてください。
例14-1 権限の継承1
1人のユーザー(User1)がおり、このユーザーにはある表(TableA)の読取り権限が明示的に付与されているとします。また、このUser1はRole1のメンバーであり、Role1はTableAへのアクセスが明示的に拒否されているとします。この場合、User1はTableAの読取り権限を持つことになります(図14-5参照)。
ユーザーに直接付与される権限はアプリケーション・ロールを通じて付与される権限よりも高い優先度を持つため、User1はTableAの読取り権限を持ちます。
この結果、権限は次のようになります。
User1はRole1およびRole2の直接のメンバーであり、Role3、Role4およびRole5の間接的なメンバーです。
Role5の優先度レベルはRole2よりも低いため、Role5によって課されるTableAへのアクセス拒否は、Role2を通じて付与される読取り
権限によって無効になります。この結果、Role2によってTableAに対する読取り
権限が提供されます。
Role1から得られる権限は、TableAではアクセス権なし
、TableBでは読取り
、TableCでは読取り
となります。
Role1とRole2は同じレベルの優先度を持ち、それぞれの権限は相反する(Role1ではTableAへのアクセスが拒否され、Role2ではTableAへのアクセスが許可される)ため、User1はより制限の少ないレベルを継承することになります。つまり、User1はTableAの読取り
アクセス権を持つことになります。
User1に対して総合的に付与される権限は、TableA、TableBおよびTableCの読取り
アクセス権です。
特定のアプリケーション・ロールに対して、リポジトリ内に問合せ制限(ガバナー)を設定することによって、問合せ環境を管理することができます。返される行数による制限、最大実行時間による制限、特定の時間帯への限定によって、問合せを制限することができます。また、直接データベース・リクエストや移入権限を許可したり、禁止したりすることもできます。
問合せ制限は、個々のユーザーに対してではなく、必ず特定のアプリケーション・ロールに対して設定してください。
この項には次のトピックが含まれます:
この項の手順に従って、「ユーザー/アプリケーション・ロール権限」ダイアログの「問合せ制限」タブにアクセスします。
管理ツール内で特定のアプリケーション・ロールの問合せ制限機能にアクセスするには:
管理ツールでリポジトリを開きます。
「管理」→「アイデンティティ」を選択します。
「Identity Manager」ダイアログのツリー・ペインで、「BIリポジトリ」を選択します。
右のペインで「アプリケーション・ロール」タブを選択し、問合せ制限を設定するアプリケーション・ロールをダブルクリックします。
オフライン・モードの場合、以前にオンライン・モードで変更されているアプリケーション・ロールを除き、リストにアプリケーション・ロールは表示されません。詳細は、「オフライン・モードでのデータ・アクセス・セキュリティの適用について」を参照してください。
「アプリケーション・ロール」ダイアログで「権限」をクリックします。
「ユーザー/アプリケーション・ロール権限」ダイアログで、「問合せ制限」タブをクリックします。
問合せに特定の行数制限を適用することによって、リソース集中型の問合せを制御することができます。
受け取る行数によって問合せを制限するには:
「管理ツール内の問合せ制限機能へのアクセス」の手順を実行して、「問合せ制限」タブにアクセスします。
「最大行数」列に、ユーザーが各ソース・データベース・オブジェクトから取得できる最大行数を入力します。
「ステータス最大行数」フィールドで、各データベースに対して次のいずれかのオプションを選択します。
有効化: 行数を指定した値に制限します。行数が「最大行数」の値を超えると、問合せは停止されます。
無効化: 「最大行数」フィールドに設定されているすべての制限を無効にします。
警告: 制限を施行せず、設定されている制限を超える問合せについて問合せログに記録します。
無視: 制限は親のアプリケーション・ロールから継承されます。継承される行制限がない場合は、制限は施行されません。
「OK」をクリックし、再度「OK」をクリックして、Identity Managerに戻ります。
特定の時間帯に問合せを禁止したり、データベース上で実行可能な問合せの最大時間を指定したりすることができます。
特定の時間帯を選択しない場合、アクセス権は変更されません。1つ以上のアプリケーション・ロールのアクセスを明示的に許可または禁止する場合、定義された時間帯において最も制限の少ないアクセス権がユーザーに付与されます。たとえば、あるアプリケーション・ロールでは月曜日の全日に明示的にアクセスが許可されており、別のアプリケーション・ロールでは毎日のすべての時間においてアクセスが禁止されているとします。あるユーザーがこの両方のアプリケーション・ロールのメンバーである場合、このユーザーは月曜日のみアクセス権を持つことになります。
最大実行時間によって問合せを制限する、または特定の時間帯に問合せを制限するには:
「管理ツール内の問合せ制限機能へのアクセス」の手順を実行して、「問合せ制限」タブにアクセスします。
データベース上で問合せが実行可能な最大時間を指定するには、「最大時間(分)」列に、各データベースオブジェクトで問合せが実行される最大の時間(分)を入力します。次に、「ステータス最大時間」フィールドで、各データベースに対して次のいずれかのオプションを選択します。
有効化: 指定した値に時間を制限します。
無効化: 「最大時間」フィールドに設定されているすべての制限を無効にします。
警告: 制限を施行せず、設定されている時間制限を超える問合せについて問合せログに記録します。
無視: 制限は親のアプリケーション・ロールから継承されます。継承される時間制限がない場合は、制限は施行されません。
データベースへのアクセスを特定の時間帯に制限するには、「制限」列で省略記号のボタンをクリックします。次に、「制限」ダイアログで次の手順を実行します。
時間帯を選択するには、開始時間をクリックし、終了時間までドラッグします。
明示的にアクセスを許可するには、「許可」をクリックします。
明示的にアクセスを禁止するには、「拒否」をクリックします。
「OK」をクリックします。
「OK」をクリックし、再度「OK」をクリックして、Identity Managerに戻ります。
特定のアプリケーション・ロールに対して、直接データベース・リクエストの実行を許可または禁止することができます。選択されたロールでは、物理レイヤー内のデータベース・オブジェクトの「デフォルトで直接データベース・リクエストを許可」プロパティよりも、この権限のほうが優先されます。
直接データベース・リクエストの実行の可否を設定するには:
「管理ツール内の問合せ制限機能へのアクセス」の手順を実行して、「問合せ制限」タブにアクセスします。
各データベース・オブジェクトの「直接データベース・リクエストの実行」フィールドで、次のいずれかのオプションを選択します。
許可: このデータベースに対する直接データベース・リクエストの実行の許可を明示的に付与します。
拒否: このデータベースに対する直接データベース・リクエストの実行を明示的に禁止します。
無視: 制限は親のアプリケーション・ロールから継承されます。継承される制限がない場合、直接データベース・リクエストは、データベース・オブジェクトの「デフォルトで直接データベース・リクエストを許可」プロパティに基づいて許可または禁止されます。
「OK」をクリックし、再度「OK」をクリックして、Identity Managerに戻ります。
基準ブロックがキャッシュされるときに、移入ストアド・プロシージャはデータベースにキャッシュ/保存済結果セットの値を書き込みます。特定のアプリケーション・ロールに対して、この権限を付与または拒否することができます。選択されたアプリケーション・ロールでは、物理レイヤー内のデータベース・オブジェクトの「デフォルトで問合せの移入を許可」プロパティよりも、この権限のほうが優先されます。
キャッシュ・エントリを書き込むか、または結果セットを保存するOracle Marketing Segmentationのすべてのユーザーは、対象のデータベースの移入
権限が割り当てられたアプリケーション・ロールのメンバーである必要があります。マーケティング・キャッシュの詳細は、Oracle Marketing Segmentationアプリケーションのドキュメントにおいてターゲット・レベルのキャッシュの設定に関する項を参照してください。
移入権限を許可または禁止するには:
「管理ツール内の問合せ制限機能へのアクセス」の手順を実行して、「問合せ制限」タブにアクセスします。
各データベース・オブジェクトの「移入権限」フィールドで、次のいずれかのオプションを選択します。
許可: このデータベースに対する移入権限を明示的に付与します。すべてのマーケティング・データ・ウェアハウスに対しては、「許可」を選択します。
拒否: このデータベースに対する移入権限を拒否します。
無視: 制限は親のアプリケーション・ロールから継承されます。継承される制限がない場合、移入権限は、データベース・オブジェクトの「デフォルトで問合せの移入を許可」プロパティに基づいて許可または拒否されます。
「OK」をクリックし、再度「OK」をクリックして、Identity Managerに戻ります。
データ・アクセス・セキュリティのタスクは、オンライン・モードの管理ツールで実行することを強くお薦めします。オフライン・モードでデータ・アクセス・セキュリティを適用する必要がある場合は、最初にオンライン・モードの管理ツールでユーザーまたはアプリケーション・ロールを変更している場合を除き、それらのユーザーまたはアプリケーション・ロールはオフライン・モードの管理ツールには表示されないことに注意してください。
たとえば、最初にオンライン・モードで変更を行わないまま管理ツールをオフライン・モードで開くと、定義済のユーザーおよびアプリケーション・ロールは一切表示されません。ただし、最初にオンライン・モードでユーザーまたはアプリケーション・ロールを変更すると(オブジェクト権限を適用したり、問合せ制限を設定したりするなど)、以降はオフライン・モードの管理ツール内でもそれらが利用可能になります。
オンライン・モードでは、Identity Managerで「アクション」を選択して、「アプリケーション・ロールの同期」を選択することでいつでもポリシー・ストアからアプリケーション・ロールの最新のリストを取得できます。
アプリケーション・ロールは、Oracle WebLogic管理コンソールおよびFusion Middleware Controlを使用して、ポリシー・ストア内に作成し、管理することができます。これらのアプリケーション・ロールはオンライン・モードの管理ツール内に表示されるため、それらを使用して、特定のロールのデータ・フィルタ、オブジェクト権限、問合せ制限を設定することができます。ポリシー・ストア内のアプリケーション・ロールは、Oracle BIサーバーの開始時にそのサーバーによって取得されます。
ときには、ポリシー・ストア内にまだ定義されていないアプリケーション・ロールのために、データ・アクセス・セキュリティをリポジトリ内に定義しておきたい場合があります。これを実現するには、管理ツール内にプレースホルダ・アプリケーション・ロールを作成し、それからリポジトリ内へのデータ・アクセス・セキュリティ設定に進みます。
管理ツール内にプレースホルダ・アプリケーション・ロールを作成する場合、最終的にはそれらをポリシー・ストアに追加する必要があります。管理ツール内に定義されているものの、まだポリシー・ストアに追加されていないアプリケーション・ロールを特定するには、整合性チェッカをオンライン・モードで実行します。ポリシー・ストア内のプレースホルダ・ロールは、管理ツール内で使用したのと同じ名前を使用する必要があります。
注意: プレースホルダ・ロールを定義および使用する際には注意が必要です。ポリシー・ストア内に存在するロールをオフライン・モードで変更した場合、次回にOracle BIサーバーに接続するときにその変更は上書きされます。 |
管理ツール内にプレースホルダ・アプリケーション・ロールを作成するには:
管理ツールでリポジトリを開きます。
「管理」→「アイデンティティ」を選択します。
「Identity Manager」ダイアログで、「アクション」→「新規」→「アプリケーション・ロール」」を選択します。
「アプリケーション・ロール」ダイアログで、次の情報を入力します。
名前: ロールの名前を指定します。
表示名: ロールの表示名を入力します。
説明: このアプリケーション・ロールの説明を入力します(オプション)。
メンバー: 「追加」ボタンと「削除」ボタンを使用して、該当するユーザーおよび他のアプリケーション・ロールを追加または削除します。
権限: 目的に応じてこのアプリケーション・ロールにオブジェクト権限、データ・フィルタ、および問合せ制限を設定します。詳細は、この章の他の項を参照してください。
「OK」をクリックし、「Identity Manager」ダイアログに戻ります。
ポリシー・ストアに追加する必要のあるアプリケーション・ロールをチェックするには:
オンライン・モードの管理ツールでリポジトリを開きます。
「ファイル」→グローバル整合性のチェックを選択します。
アプリケーション・ロールに関連するすべてのエントリを書き留め、該当するロールをポリシー・ストアに追加します。ポリシー・ストアへのアプリケーション・ロールの追加の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionセキュリティ・ガイド』を参照してください。
(オプション)エントリをテキストファイルにコピーするには、個々の行を選択し、「コピー」をクリックします。
また、「Identity Manager」ダイアログでアプリケーション・ロールを右クリックし、「整合性のチェック」を選択することによって、個々のアプリケーション・ロールをチェックすることもできます。
管理ツール内のIdentity Managerを使用して、システムに定義されているユーザーのリストを参照することができます。このユーザーのリストは認証プロバイダから取得されます。ユーザーのセットはOracle BIサーバーの再起動時に更新されます。ユーザー・リストを参照するには、Identity Managerのナビゲーション・ツリーで「BIリポジトリ」を選択し、次に右のペインで「ユーザー」タブを選択します。
ユーザーのリストは非常に大きい可能性があるため、オンライン・モードではデフォルトでユーザーは取得されません。取得するユーザーのセットを指定するには、「アクション」→「オンライン・ユーザー・フィルタの設定」を選択します。
フィルタはデフォルトでは空になっています。これは、ユーザーは一切取得されないことを意味します。すべてのユーザーを取得するには*と入力します。特定のユーザーのセットを取得するには、文字の組合せを入力します。たとえば、文字Aで始まるすべてのユーザーを取得するには、A*と入力します。このフィルタでは、大文字と小文字は区別されません。
オフライン・モードでは、最初にオンライン・モードの管理ツールでユーザーを変更していないかぎり、リストにユーザーは表示されません。そのため、オフライン・モードの管理ツールではユーザーが表示されない場合があります。
ユーザー・リスト内のユーザーをダブルクリックすると、「ユーザー」ダイアログが開かれます。このダイアログでは次の操作を実行できます。
「ユーザー」タブで、ユーザーの名前、表示名および説明とともに、このユーザーが属しているアプリケーション・ロールも表示できます。また、このユーザーの問合せロギング・レベルを設定することもできます。問合せロギング・レベルの設定の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』を参照してください。
「ログオン」タブでは、データ・ソース固有のログオンのリストを提供することができます。このタブでは、このユーザーに関してデータ・ソースに渡される資格証明のマッピングを提供できます。
この機能は、共有接続プールを持たないデータ・ソース接続を設定する際に使用します。その際、個々のユーザーの名前が直接データ・ソースに渡されます。データ・ソースにOracle Business Intelligenceのユーザー資格証明を渡すのではなく、個々のユーザーを個別のデータ・ソース固有の資格証明にマップすることができます。
重要: 個々のユーザーに対し、「権限」ボタンを使用してオブジェクト権限、データ・フィルタ、または問合せ制限を設定しないでください。個々のユーザーではなく必ずアプリケーション・ロールを使用して、データを保護してください。 |