使用 MDX 運算式來設定資料格資料權限
多維度運算式 (MDX) 運算式會設定資料格資料的權限,它指定可存取的資料格或不能存取的資料格。藉由允許存取某些維度中之特定成員的資料格,以及拒絕存取其他維度中之特定成員的資料格,資料格安全性會提供很大的彈性。事實上,您可以建立 MDX 運算式來允許或拒絕存取任何可能的資料格組合。
當您建立 MDX 運算式時,請記住下列各項:
- MDX 運算式不需要在 Cube 中包含每一個維度。如果您在 MDX 運算式中省略某個維度,對該維度成員的存取不受影響。
- 若要限制只有一個維度可以存取,一個極簡單的 MDX 運算式通常就可以滿足需要。
- MDX 運算式的複雜度主要視它包含的維度數目而定。
- 若要允許或拒絕對特定成員或量值之資料格的存取,請使用 MDX 函數 CurrentMember 和 Name 的組合。
- 如果您指定一個在維度內不是唯一的成員名稱,請使用 UniqueName 函數,而不要使用 Name 函數。
- 若要允許或拒絕對成員及其下階之資料格的存取,請在運算式中包含 Ancestor 函數。
- 若要允許或拒絕以多個維度中的準則為基礎之資料格的存取,請為每一個維度建立運算式,然後將它們與 AND 或 OR 結合成一個運算式。
檢閱設定權限之 MDX 運算式的範例
下列主題說明如何使用各種 MDX 運算式,來控制對資料格資料的存取:
- 範例 1—允許所有成員進行存取
使用預設運算式來傳回所有成員。 - 範例 2—允許單一成員進行存取
使用 CurrentMember 函數,即可只傳回單一量值。 - 範例 3—拒絕存取單一成員
使用 CurrentMember 函數,即可防止存取單一量值。 - 範例 4—限制成員及其下階的存取權
使用 Ancestor 和 CurrentMember 函數,即可只傳回單一成員及其下階。 - 範例 5—授與維度內之特定量值的存取權
使用 And,即可將包含 Ancestor 和 CurrentMember 函數的兩個運算式,結合成只包含維度之特定量值的單一運算式。 - 範例 6—在維度中排除已選取的量值
使用 And,即可將包含 Ancestor 和 CurrentMember 函數的兩個運算式,結合成已排除維度之所選量值的單一運算式。 - 範例 7—拒絕的成員之例外
使用 And,即可將包含 Ancestor 和 CurrentMember 函數的兩個運算式,結合成排除每一個維度之所選量值的單一運算式,但有一個特定維度除外。