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では、定義済のすべてのデータ・フィルタが考慮されます。
データ・フィルタは、個々のユーザーに対してではなく、必ず特定のアプリケーション・ロールに対して設定してください。
データ・フィルタを設定して、問合せの行レベルの認可ルールを適用するには:
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を設定するには:
データベース内に行レベル・セキュリティを設定した後、プレゼンテーション・レイヤーなどのオブジェクトに対応するリポジトリ内でオブジェクト権限を設定する必要があります。また、問合せ制限(ガバナー)を設定することもできます。詳細は、オブジェクト権限の設定および問合せ制限の設定を参照してください。