MDX 式を使用したセル データ権限の設定
セル データに権限を設定する多次元式 (MDX) を使用すると、アクセス可能なセルまたはアクセス不可能なセルを指定できます。一部のディメンションに含まれる特定のメンバのセルへのアクセスを許可し、他のディメンションに含まれる特定のメンバのセルへのアクセスを拒否することで、セルのセキュリティを非常に柔軟に設定できます。事実上、セルのあらゆる組み合わせへのアクセスを許可または拒否する MDX 式を作成できます。
MDX 式を作成するときは、次の点に注意してください。
- MDX 式にキューブ内のすべてのディメンションを含める必要はありません。MDX 式にディメンションを含めなかった場合、ディメンションのメンバへのアクセスが影響を受けることはありません。
- 1 つのディメンションだけによってアクセスを制限するには、比較的簡単な MDX 式で通常は十分です。
- MDX 式の複雑さは、主にそれが含むディメンションの数によって決まります。
- 特定のメンバまたはメジャーのセルへのアクセスを許可または拒否するには、MDX 関数の CurrentMember と Name を組み合わせて使用します。
- ディメンションの中で一意でないメンバ名を指定する場合は、Name 関数ではなく UniqueName 関数を使用します。
- メンバとその子孫のセルへのアクセスを許可または拒否するには、式に Ancestor 関数を組み込みます。
- 多次元内の基準に基づいたセルへのアクセスを許可または拒否するときは、ディメンションごとに式を作成して、それらを AND または OR によって 1 つの式に組み合わせます。
権限を設定する MDX 式の例
次のトピックでは、さまざまな MDX 式を使用してセル データへのアクセスを制御する方法を示します。
- 例 1 - すべてのメンバへのアクセスの許可
既定の式を使用して、すべてのメンバを返します。 - 例 2 - 単一のメンバへのアクセスの許可
CurrentMember 関数を使用して、1 つのメジャーのみを返します。 - 例 3 - 単一のメンバへのアクセスの拒否
CurrentMember 関数を使用して、1 つのメジャーへのアクセスを拒否します。 - 例 4 - メンバとその子孫へのアクセスの制限
Ancestor および CurrentMember 関数を使用して、1 つのメンバとその子孫のみを返します。 - 例 5 - ディメンション内の特定のメジャーへのアクセス権の付与
And を使用して、Ancestor および CurrentMember 関数を含む 2 つの式を、ディメンションの特定のメジャーのみを含む 1 つの式に組み合わせます。 - 例 6 - ディメンションからの選択されたメジャーの除外
And を使用して、Ancestor および CurrentMember 関数を含む 2 つの式を、ディメンションの選択したメジャーを除外する 1 つの式に組み合わせます。 - 例 7 - 拒否されたメンバへの例外の適用
And を使用して、Ancestor および CurrentMember 関数を含む 2 つの式を、1 つの特定のディメンションを除くすべてのディメンションから選択したメジャーを除外する 1 つの式に組み合わせます。