セキュリティ・フィルタを使用したデータベース・セルへのアクセスの制御

この項の内容:

セキュリティ・フィルタについて

セキュリティ・フィルタを使用した権限の定義

フィルタの作成

フィルタの管理

フィルタの割当て

セキュリティ・フィルタについて

アプリケーション、データベース、ユーザーおよびグループに対して定義されたセキュリティ・レベルが不足している場合は、Essbaseセキュリティ・フィルタによって、より具体的な制御が提供されます。フィルタを使用すると、どういう種類のアクセスが、データベースのどの部分に、これらの設定が適用されるどのユーザーに許可されているかを定義することによって、データベース内の個々のデータへのアクセスを制御できます。

管理者権限がある場合は、任意のユーザーやグループに対して、任意のフィルタを定義して、割り当てられます。これらのフィルタは、自分自身には影響しません。

アプリケーションの作成/削除の権限がある場合は、自分が作成したアプリケーションに対するフィルタの割当ておよび定義が可能です。

アプリケーション・マネージャまたはデータベース・マネージャの権限がある場合は、自分のアプリケーションまたはデータベース内のフィルタを定義および割り当てできます。

セキュリティ・フィルタを使用した権限の定義

フィルタは、データ値(つまりセル)へのセキュリティ・アクセスを制御します。データベースの特定の部分に対するセキュリティのニーズに対応するフィルタを作成します。フィルタを定義する場合は、特定のデータベース・セルに対する制限を指定します。フィルタは保存されるときに、他のフィルタと区別するための一意の名前が付けられ、サーバーによってセキュリティ・ファイルessbase.secに保管されます。その後、Essbaseサーバー上の任意のユーザーまたはグループにそのフィルタを割り当てることができます。

たとえば、利益情報を含むセルへのアクセスを制限するために、マネージャがREDという名前のフィルタを設計し、それをデータベースに関連付けるとします。このフィルタはREVIEWERSという名前の訪問者グループに割り当てられ、これらのユーザーがデータベースの大部分を読み取れるが変更はできず、「利益」データ値にはアクセスできないようにします。

フィルタは、データベース・メンバーに対する1つ以上のアクセス設定で構成されます。次のアクセス・レベルを指定し、それをメンバーのリストから1つのセルまでの範囲のデータに適用できます:

  • なし: 指定したメンバー・リストに対しては、データの取得も更新もできません。

  • 読取り: 指定したメンバー・リストに対しては、データの取得はできますが、更新はできません。

  • 書込み: 指定したメンバー・リストに対しては、データの取得および更新ができます。

  • メタ読取り: 指定のメンバーに対して、メタデータ(次元名およびメンバー名)の取得および更新ができます。

注:

メタ読取りアクセス・レベルによって、他のすべてのアクセス・レベルが上書きされます。データに対して追加のフィルタが定義されている場合、それらのフィルタは、定義されているすべてのメタ読取りフィルタ内で適用されます。代替変数に対してメタ読取りフィルタを割り当て、その代替変数を取得しようとすると、未知のメンバーのエラーが発生しますが、代替変数の値は表示されます。これは予期される動作です。パーティション内でメタデータ・セキュリティを完全にオフにはできません。そのため、ソース・データベースでメタデータ・セキュリティを設定しないでください。設定すると、ターゲット・パーティションで正しくないデータが生成される可能性があります。メタデータ・セキュリティがオンになっており、子に共有メンバーを含むメンバーに対してドリル・アップまたは取得を実行すると、共有メンバーの元のメンバーがフィルタされるため、未知のメンバーのエラーが発生します。このエラーを回避するには、共有メンバーの元のメンバーにメタデータ・セキュリティ・アクセス権を付与します。

フィルタ定義で指定されていないセルはすべて、データベース・アクセス・レベルを継承します。ただし、よりデータ固有のフィルタ定義は一般的なデータベース・アクセス・レベルより高い詳細レベルを示すため、データベース・レベルで割り当てられたアクセス権をフィルタで追加または削除できます。

フィルタ定義の対象にならないデータ値には、まずユーザーについて定義したアクセス・レベルが適用され、Essbaseがネイティブ・セキュリティ・モードにある場合は、次にグローバルなデータベース・アクセス・レベルが適用されます。

計算アクセス権は、ユーザーおよびグループに付与された権限によって制御されます。データベースに対する計算アクセス権を持つユーザーは、フィルタによってブロックされず、その計算の実行によって更新されるすべてのデータ要素に影響を与えられます。Essbaseがネイティブ・セキュリティ・モードにある場合は、計算アクセス権もまた、アプリケーションまたはデータベースに対する最小限のグローバル権限によって制御されます。

注:

MDX計算済メンバーの計算中に、ユーザーにアクセス権のないセルは#MISSINGセルとして扱われます。

フィルタの作成

データベース値に対して加える必要のある一連のアクセス制限ごとにフィルタを作成できます。同じアクセス・ニーズを持つユーザーに対して、個別のフィルタを作成する必要はありません。フィルタを作成した後、それを複数のユーザーまたはユーザーのグループに割り当てられます。ただし、1人のユーザーまたは1つのグループに割り当てられるフィルタは、1つのデータベースにつき1つのみです。

注:

1組のメンバー(子や子孫など)を戻す計算関数を使用していて、その結果が空集合になる場合は、セキュリティ・フィルタは作成されません。領域定義の結果が空集合になったことを示すエラーがアプリケーション・ログに書き込まれます。

フィルタを作成する前に、次のアクションを実行してください:

  • サーバーに接続し、フィルタと関連付けるデータベースを選択します。

  • 制限。にあるフィルタの命名ルールを確認してください。

  フィルタを作成するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

フィルタの作成または編集

Oracle Essbase Administration Services Online Help

MaxL

create filter

『Oracle Essbaseテクニカル・リファレンス』

メンバーへのフィルタとメンバーの組合せへのフィルタ

図144は、データベース・セルへのアクセスを制御するための異なる方法を示しています。データは、メンバー全体にフィルタをかけるか、メンバーの組合せにフィルタをかけることによって保護できます。

  • 各メンバーに個別にフィルタをかけた場合には、各メンバーのすべてのデータにフィルタがかかります。

  • メンバーの組合せにフィルタをかけた場合には、メンバーの交差点にあるデータにフィルタがかかります。

    図 144. データのAND/OR関係に対するフィルタの影響

    この図は、2つのキューブを示しています。左のキューブはOR関係の影響を示し、右のキューブはAND関係の影響を示しています。

注:

メンバーの組合せに対するフィルタリング(AND関係)は、メタ読取りには適用されません。メタ読取りでは、各メンバーに個別にフィルタをかけます(OR関係)。

個々のメンバーに対するフィルタ

1つ以上のメンバーのすべてのデータにフィルタをかけるには、フィルタ・エディタで、各メンバーの独自の行に対するアクセスを定義します。フィルタの別々の行に対するフィルタ定義は、OR関係で処理されます。

たとえば、売上または1月へのアクセスをブロックするために、ユーザーKSmithに次のフィルタが割り当てられているとします:

  • アクセス: なし。メンバー指定: 売上。

  • アクセス: なし。メンバー指定: 1月。

次回ユーザーKSmithがSample.Basicにアクセスすると、Qtr1の収益マージンのスプレッドシート表示(図145)では、このユーザーがメンバーSales、メンバーJanのデータ値にアクセスできない、つまり#NOACCESSが付けられていることを示しています。メンバーSalesの内外で、ビューの売上および1月のすべてのデータはブロックされています。売上の兄弟でマージンの子であるCOGS(売上原価)のデータは、1月のCOGSを例外として、アクセスできます。

図 145. 売上または1月へのアクセスをブロックするフィルタの適用結果

この図は、フィルタでブロックされたセルに#NOACCESSが付けられたスプレッドシートを示しています。

メンバーの組合せに対するフィルタ

メンバーの組合せのデータにフィルタをかけるには、フィルタ・エディタで、行を使用してメンバーの各組合せのアクセスを定義します。フィルタ定義で、カンマで区切られた2つのメンバー・セットは、これらの2つのメンバー・セットの結合として処理されます(AND関係)。

たとえば、ユーザーRChinnが次のフィルターに割り当てられているとします: アクセス: なし。メンバー指定: 売上、1月。

次回ユーザーRChinnがSample.Basicにアクセスすると、Qtr1の収益マージンのスプレッドシート表示(図146)では、このユーザーがメンバーSalesとJanの交差でデータ値にアクセスできない、つまり#NoAccessが付けられていることを示しています。ビューの1月の売上データはブロックされています。ただし、他の月の売上データ、および1月の売上以外のデータはアクセス可能です。

図 146. 売上、1月へのアクセスをブロックするフィルタの適用結果

この図は、1月の売上データがユーザーに対してブロックされているスプレッドシートを示しています。

フィルタでの代替変数の使用

代替変数を使用すると、定期的に変更される情報をより容易に管理できます。各代替変数には、割り当てられた名前と値があります。データベース・マネージャは、この値をいつでも変更できます。フィルタで代替変数が指定された場合は、その時点の代替変数の値が使用されます。

たとえば、ユーザーのグループに現在の月のデータのみを表示したい場合は、CurMonthという名前の代替変数を設定し、フィルタ(MonthlyAccess)を定義できます。ここで、メンバー名に&CurMonthを使用してアクセスを指定します。指定の先頭にアンパサンド(&)を使用すると、Essbaseでは、メンバー名ではなく代替変数として識別されます。MonthlyAccessフィルタを該当するユーザーに割り当てます。

毎月、CurMonth代替変数の値を現在の月のメンバー名(1月や2月など)に変更するだけで済みます。この新しい値は、割り当てられているすべてのユーザーに適用されます。

代替変数の使用を参照してください。

属性関数によるフィルタ

フィルタを使用して、特定の属性を共有している基本メンバーのデータへのアクセスを制限できます。属性次元で定義された特定の属性を持つメンバーのデータにフィルタをかけるには、属性メンバーを@ATTRIBUTE関数または@WITHATTR関数と組み合せて使用します。

注:

@ATTRIBUTEと@WITHATTRはメンバー・セット関数です。フィルタ定義では、ほとんどのメンバー・セット関数を使用できます。

たとえば、ユーザーPJonesに次のフィルタが割り当てられているとします。アクセス: なし。メンバー指定: @ATTRIBUTE(Caffeinated_False)。

次回ユーザーPJonesがSample.Basicにアクセスすると、カリフォルニアでの第1四半期のコーラの売上のスプレッドシート表示(図147)では、Caffeinated_Falseに関連付けられた基本次元メンバーのデータ値にアクセスできないことを示しています。ビューのカフェインなしのコーラの売上データはブロックされています。カフェインなしのコーラは基本メンバーで、Caffeinated_Falseは属性次元Caffeinatedの関連付けられたメンバー(前述のスプレッドシート表示には表示されない)ことに注意してください。

図 147. カフェインなしの製品へのアクセスをブロックするフィルタの適用結果

この図は、カフェイン・フリー・コーラの売上データがユーザーに対してブロックされているスプレッドシートを示しています。

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

メタデータのフィルタリングにより、データのフィルタリングおよび追加のセキュリティ層が提供されます。メタデータのフィルタリングを使用すると、管理者はユーザーのビューからアウトライン・メンバーを削除して、ユーザーに関与するメンバーのみへのアクセスを提供できます。

メタ読取り権限をメンバーに適用するときにフィルタを使用すると、次のような効果があります:

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

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

フィルタの管理

参照:

フィルタの表示

  フィルタのリストを表示するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

フィルタの作成または編集

Oracle Essbase Administration Services Online Help

MaxL

display filter

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

LISTFILTERS

『Oracle Essbaseテクニカル・リファレンス』

フィルタの編集

  フィルタを編集するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

フィルタの作成または編集

Oracle Essbase Administration Services Online Help

MaxL

create filter

『Oracle Essbaseテクニカル・リファレンス』

フィルタのコピー

自分の権限に従って、フィルタを任意のEssbaseサーバー上のアプリケーションおよびデータベースにコピーできます。また、アプリケーション移行の一部として、フィルタもサーバー間でコピーできます。

  フィルタをコピーするには、次のツールを使用します:

ツール

トピック

場所

Administration Services

フィルタのコピー

Oracle Essbase Administration Services Online Help

MaxL

create filter

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

COPYFILTER

『Oracle Essbaseテクニカル・リファレンス』

フィルタの名前変更

  フィルタの名前を変更するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

フィルタの名前変更

Oracle Essbase Administration Services Online Help

MaxL

create filter

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

RENAMEFILTER

『Oracle Essbaseテクニカル・リファレンス』

フィルタの削除

  フィルタを削除するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

フィルタの削除

Oracle Essbase Administration Services Online Help

MaxL

drop filter

『Oracle Essbaseテクニカル・リファレンス』

フィルタの割当て

フィルタを定義した後、それらのフィルタをユーザーまたはグループに割り当てられます。それにより、同じフィルタ設定を必要とする複数のユーザーを管理できます。フィルタの定義への変更は、そのフィルタのユーザーによって自動的に継承されます。

フィルタは、管理者の役割を持つユーザーには影響を与えません。1人のユーザーまたは1つのグループに割り当てられるフィルタは、1つのデータベースにつき1つのみです。

EPM Systemセキュリティ・モードでのファイルの割当て

EPM Systemセキュリティ・モードでは、Oracle Hyperion Shared Services Consoleを使用してフィルタを割り当てます。

  ユーザーまたはグループにフィルタを割り当てるには、Shared Servicesでのデータベース計算およびフィルタ・アクセスの割当てを参照してください。

Essbaseネイティブ・セキュリティ・モードでのフィルタの割当て

  ユーザーまたはグループにフィルタを割り当てるには、『Oracle Essbase Administration Servicesオンライン・ヘルプ』のフィルタの割当てに関する項を参照してください。

フィルタ定義のオーバーラップ

フィルタ内に同一のメンバー指定を持つ行が複数含まれている場合には、次のルールが記載順に適用されて、継承されるアクセス権が決定されます:

  1. より詳細な次元の組合せリストを定義するフィルタは、より一般的なフィルタに優先します。

  2. 前述のルールによってオーバーラップの競合が解決しない場合は、オーバーラップするフィルタ行の中で、最も高いアクセス・レベルが適用されます。

たとえば、次のフィルタには、オーバーラップの競合が含まれます:

  • アクセス: 書込み。メンバー指定: 実績。

  • アクセス: なし。メンバー指定: 実績。

  • アクセス: 読取り。メンバー指定: 実績、@IDESCENDANTS(New York)。

3番目の指定は、他の2つより高い詳細レベルでセキュリティを定義します。そのため、ニューヨーク支店内のメンバーのすべての実際データに読取りアクセス権が付与されます。

書込みアクセス権は、なしよりアクセス・レベルが高いため、実際内の残りのデータ値には書込みアクセス権が付与されます。

その他のすべてのセル(予算など)には、最小限のデータベース権限に従ってアクセスできます。

書込みアクセス権を持っているユーザーは、読取りアクセス権も持っています。

注:

データベース・アウトライン内のメンバーへの変更は、フィルタに自動的には反映されません。変更されたメンバー参照を手動で更新する必要があります。

メタデータのフィルタ定義の重複

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

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

  • アクセス: メタ読取り。メンバー指定: California。

  • アクセス: メタ読取り。メンバー指定: West。

最初の行では、メタ読取りをCaliforniaに適用すると、Californiaにアクセスできるようになりますが、その祖先へのアクセスはブロックされます。そのため、Westに対するメタ読取りは無視されます。このフィルタが割り当てられているユーザーは、Westへアクセスできません。

CaliforniaのみでなくWestにもメタ読取りアクセスを割り当てるには、これらの行を次の1行にまとめます。アクセス: メタ読取り。メンバー指定: California、West。

アクセス定義のオーバーラップ

ユーザーおよびグループのアクセス権の定義がオーバーラップする場合は、次のルールが、記載順に適用されます:

  1. より詳細な次元の組合せリストを定義するアクセス・レベルは、より一般的なアクセス・レベルに優先します。

  2. 前述のルールによってオーバーラップの競合が解決しない場合は、最も高いアクセス・レベルが適用されます。

例1:

ユーザーフレッドには、次のデータベース・アクセスが定義されています:

      FINPLAN     R
CAPPLAN     W
PRODPLAN    N
   

彼は、グループ・マーケティングに割り当てられており、グループ・マーケティングには、次のデータベース・アクセスが付与されています:

      FINPLAN     N
CAPPLAN     N
PRODPLAN    W
   

彼の有効な権限は、次のように設定されています:

      FINPLAN     R
CAPPLAN     W
PRODPLAN    W

   

例2:

ユーザー・メアリーには、次のデータベース・アクセスが定義されています:

      FINPLAN     R
PRODPLAN    N
   

彼女は、グループ・マーケティングに割り当てられており、グループ・マーケティングには、次のデータベース・アクセスが付与されています:

      FINPLAN     N
PRODPLAN    W
   

彼女の有効な権限は、次のように設定されています:

      FINPLAN     R
PRODPLAN    W
   

さらに、メアリーは(データベースFINPLANのための)フィルタ・アーティファクトREDも使用しています。このフィルタには、次の2つのフィルタ行があります:

  • アクセス: 読取り。メンバー指定: 実績。

  • アクセス: 書込み。メンバー指定: 予算、@IDESCENDANTS(New York)。

また、グループ・マーケティングは(データベースFINPLANのための)フィルタ・アーティファクトBLUEも使用しています。このフィルタには、次の2つのフィルタ行があります:

  • アクセス: 読取り。メンバー指定: 実際、売上。

  • アクセス: 書込み。メンバー指定: 予算、売上。

フィルタのオーバラップから、メアリーの有効な権限と、メアリーおよびメアリーのグループに割り当てられる権限は次のようになります:

  • R: FINPLANデータベース全体。

  • W: New Yorkブランチ内のすべての予算データに対して。

  • W: 予算および売上に関連するデータ値に対して。