機械翻訳について

メタデータのフィルタリング

関連するMaxL文: create filteralter filter

メタデータ・フィルタリングは、データ・フィルタリングに加えて追加のセキュリティ・レイヤーを提供します。 メタデータのフィルタリングを使用すると、管理者はアウトライン・メンバーをユーザー・ビューから削除して、ユーザーにとって関心のあるメンバーにのみアクセス権を付与できます。

フィルタを使用してメンバーにMetaRead権限を適用する場合、

  1. そのメンバーのすべての祖先のデータは、フィルタ・ユーザーのビューで非表示になります。

  2. そのメンバーのすべての兄弟のデータおよびメタデータ(メンバー名)は、フィルタ・ユーザーのビューで非表示になります。

Sample.Basic用の次のレポート・スクリプト:

//Meta02.rep

<COLUMN (Year, Product)
<CHILDREN Cola

<ROW (Market)
<ICHILDREN West
!

通常のフィルタされていない条件では、次の値が返されます

      Year 100-10 Measures Scenario
California          3,498
Oregon                159
Washington            679
Utah                  275
Nevada                (18)
  West              4,593

ただし、読取りアクセス権のないユーザーに次のフィルタが付与されているとします。

 create or replace filter sample.basic.meta02 
  meta_read on '"California","Oregon"'
 ;

その後、レポート・スクリプトは次を返します:

      Year 100-10 Measures Scenario
California          3,498
Oregon                159
  West           #Missing

要約すると、CaliforniaおよびOregonに対するMetaReadの権限は、次のことを意味します:

  1. 影響を受けるユーザーは、CaliforniaおよびOregonメンバーの祖先のデータを表示できません。 Westデータには、#Missing (またはグリッド・クライアント・インタフェースの#NoAccess)のみが表示されます。

  2. 影響を受けるユーザーは、CaliforniaおよびOregonの兄弟の兄弟メタデータ(またはデータ)を表示できません。 つまり、ユーザーには、フィルタによってMetaRead権限が付与されている西部の州のみが表示されます。

重複するメタデータ・フィルタ定義

特定の行(メタ読取りメンバーとその祖先)の影響を受けるメンバー・セットが他の行のMetaReadメンバーと重複しない場合にのみ、複数の行を使用してMetaReadフィルタを定義する必要があります。 Oracleでは、複数の行にMetaReadを含むフィルタで、行ごとに1つのディメンションを指定することをお薦めします。 ただし、祖先メンバーとMetaReadメンバーの間に重複がないかぎり、あるディメンションの異なるメンバー・セットを複数のMetaRead行に指定することは引き続き有効です。

たとえば、Sample.Basicでは、次のフィルタ定義に重複する競合があります:

表3-27重複する競合があるサンプル・フィルタ

アクセス メンバー指定
MetaRead California
MetaRead West

最初の行で、MetaReadをCaliforniaに適用すると、Californiaへのアクセスは許可されますが、祖先へのアクセスはブロックされます。 したがって、WestへのMetaReadアクセスは無視されます。このフィルタを割り当てられたユーザーはWestにアクセスできません。

WestおよびCaliforniaにMetaReadアクセス権を割り当てる場合、適切なメソッドは次のいずれかの行に結合することです:

表3-28重複しない競合があるサンプル・フィルタ

アクセス メンバー指定
MetaRead California,West