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