Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 12c (12.2.1.2.0) E82973-02 |
|
![]() 前へ |
![]() 次へ |
次の手順では、同じリポジトリ・オブジェクト(通常は論理ファクト表)に対する異なるデータ・アクセス・フィルタを使用してアプリケーション・ロールの機能グループを指定します。
定義された機能グループがない場合、関連付けられたロールにかかわらず、特定の表に適用されたすべてのセキュリティ・フィルタがOR
演算子を使用して結合されます。ユーザーはセキュリティ・フィルタによって選択されたすべての行の結合を表示できるため、OR
演算子の使用は多くの場合機能します。たとえば、次のようなフィルタがあるとします。
ロールAにフィルタProduct = 'Coke
'が割り当てられます
ロールBにフィルタProduct = 'Pepsi'
が割り当てられます
ユーザーにロールAとロールBが付与されている場合、そのユーザーはCokeとPepsiの両方の製品のデータを表示できます。
同じ表の2つのセキュリティ・フィルタが問合せで結合される場合、フィルタ条件はOR
演算子を使用して結合されます(このことは、ディメンション表で定義されたほとんどのセキュリティ・フィルタに該当します)。次に例を示します。
Product = 'Coke' OR Product = 'Pepsi
'
異なるディメンションのデータ・フィルタを使用して1つのファクト表を保護する場合は、機能グループを使用する必要があります。
この例では、ファクト表は次のフィルタを使用して保護されます。
ロールAにフィルタProduct = 'Coke'
が割り当てられます
ロールBにフィルタProduct = 'Pepsi'
が割り当てられます
ロールCにフィルタRegion = 'Southwest'
が割り当てられます
機能グループを使用しない場合、ロールA、BおよびCのユーザーの問合せでは、3つのフィルタ条件がすべてOR
演算子を使用して結合されます。次に例を示します。
(Product = 'Coke' OR Product = 'Pepsi' OR Region = 'Southwest')
ProductとRegionは独立したディメンションであるため、ロールA、BおよびCの結果を結合しても意味をなしません。OR
演算子を使用して異なるディメンションのデータ・フィルタを結合すると、ユーザーに表示する必要がないデータ値にユーザーがアクセスできるようになります。
この例では、ユーザーはPepsiおよびCoke製品内のすべての地域のデータに加えて、Southwest地域内のすべての製品のデータを表示できます。
想定された動作を得るには(つまり、Southwest地域内のPepsiおよびCoke製品のデータのみをユーザーが表示できるようにするには)、AND
演算子を使用して製品フィルタと地域フィルタを結合して、フィルタを変更する必要があります。次に例を示します。
(Product = 'Coke' OR Product = 'Pepsi') AND (Region = 'Southwest')
機能グループを使用してこれを行うには、次のようにセキュリティ・フィルタを機能グループに割り当てる必要があります。
ロールAにフィルタProduct = 'Coke' with functional group "Product"
が割り当てられます
ロールBにフィルタProduct = 'Pepsi' with functional group "Product"
が割り当てられます
ロールCにフィルタRegion = 'Southwest' with functional group "Region"
が割り当てられます
同じ機能グループ内のすべてのフィルタはOR
演算子を使用して結合され、異なる機能グループ内のすべてのフィルタのセットはAND
演算子を使用して結合されます。各セキュリティ・フィルタに関連付けられた機能グループを選択することで、OR
演算子とAND
演算子を使用してフィルタを結合する方法を制御できます。
データ・フィルタを作成するには、リポジトリでのデータ・フィルタの設定を参照してください。