機械翻訳について

データ・フィルタでのアプリケーション・ロールの機能グループの指定について

論理ファクト表などのセマンティック・モデル・オブジェクトに、異なるレベルのアクセスを持つ複数のアプリケーション・ロールからアクセスする場合、機能グループを指定して、制限されたデータがその特定のアプリケーション・ロールで表示されないようにすることができます。

定義された機能グループがない場合、関連付けられたロールにかかわらず、特定の表に適用されたすべてのセキュリティ・フィルタがOR演算子を使用して結合されます。 セキュリティ・フィルタによって選択されたすべての行をロールが表示できるため、ほとんどの場合、OR演算子を使用できます。 たとえば、次のようなフィルタがあるとします。

ロールAにはフィルタProduct = 'Camera'が割り当てられます

ロールBにはフィルタProduct = 'Monitor'が割り当てられます

アプリケーション・ロールにロールAおよびロールBが付与されている場合、ロールはCameraとMonitorの両方の製品のデータを表示できます。

同じ表の2つのセキュリティ・フィルタが問合せで結合される場合、フィルタ条件はOR演算子を使用して結合されます(このことは、ディメンション表で定義されたほとんどのセキュリティ・フィルタに該当します)。たとえば:

Product = 'Camera' OR Product = 'Monitor'

異なるディメンションのデータ・フィルタを使用して単一のファクト表を保護する場合は、機能グループを使用する必要があります。

この例では、ファクト表は次のフィルタを使用して保護されます。

ロールAにはフィルタProduct = 'Camera'が割り当てられます

ロールBにはフィルタProduct = 'Monitor'が割り当てられます

ロールCにフィルタRegion = 'Southwest'が割り当てられます

機能グループを使用しない場合、ロールA、BおよびCのユーザーの問合せでは、3つのフィルタ条件がすべてOR演算子を使用して結合されます。たとえば:

(Product = 'Camera' OR Product = 'Monitor' OR Region = 'Southwest')

ProductとRegionは独立したディメンションであるため、ロールA、BおよびCの結果を結合しても意味をなしません。 OR演算子を使用して異なるディメンションのデータ・フィルタを組み合せると、アプリケーション・ロールは、ロールで表示する必要があるデータ値より多くのデータ値にアクセスできます。

この例では、アプリケーション・ロールは、Southwestリージョン内のすべての製品のデータ、およびCamera and Monitor製品内のすべてのリージョンのデータを表示できます。

アプリケーション・ロールがSouthwestリージョン内のCameraおよびMonitor製品のデータのみを表示できるように、予想される動作を取得するには、フィルタを変更して、AND演算子を使用して製品フィルタをリージョン・フィルタと組み合せる必要があります。次に例を示します:

(Product = 'Camera' OR Product = 'Monitor') AND (Region = 'Southwest')

機能グループを使用してこれを行うには、次のようにセキュリティ・フィルタを機能グループに割り当てる必要があります。

ロールAにはフィルタProduct = 'Camera' with functional group "Product"が割り当てられます

ロールBにはフィルタProduct = 'Monitor' with functional group "Product"が割り当てられます

ロールCにフィルタRegion = 'Southwest' with functional group "Region"が割り当てられます

同じ機能グループ内のすべてのフィルタはOR演算子を使用して結合され、異なる機能グループ内のすべてのフィルタのセットはAND演算子を使用して結合されます。 各セキュリティ・フィルタに関連付けられた機能グループを選択することで、OR演算子とAND演算子を使用してフィルタを結合する方法を制御できます。