使用 MDX 表达式设置单元数据权限
使用“多维表达式 (MDX)” 表达式设置单元数据的权限,可指定哪些单元能访问,或者哪些单元不能访问。通过允许访问某些维度中特定成员的单元,同时拒绝访问其他维度中特定成员的单元,从而使单元安全性的灵活性大大提高。实际上,您可以创建 MDX 表达式,用于允许或拒绝访问任何可能的单元组合。
创建 MDX 表达式时,请记住以下事项:
- MDX 表达式不需要包括多维数据集中的每一个维度。如果在 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 函数的表达式组合成一个排除所有维度(一个特定维度除外)中选定度量值的表达式。