有了TM1,你将有更多的时间进行分析和其他有价值的活动,而不必放弃Excel。Cubewise将告诉你如何做。
关于TM1 2.0.9.1版Cubewise测试的最新情况。
此后,IBM发布了一份关于这个话题的说明,可以在这里阅读。
MDX子集安全
2.0.9.1之前的行为。
当我们讨论TM1维度子集时,MDX有两个主要应用。第一个是"动态子集",MDX查询语句与子集一起保存,以确保返回的元素自动反映维度结构的变化(例如,维度中添加了一个新元素)或立方体数据的变化(例如,表现最好的5个账户)。
例如,以下MDX显示了合并"世界"下的所有元素。
{TM1DRILLDOWNMEMBER( {[区域].[世界]}, ALL, RECURSIVE )}。
对于一个可以访问所有元素的用户来说,这个例子就像下面的例子。

当元素安全被分配到一个维度时,最终用户只能看到那些符合MDX选择标准的元素,并且用户对这些元素有最低的READ访问权限。在这个例子中,我们有一个安全组,其访问权限被限制在南美洲(在元素安全立方体中定义如下)。

对于该安全组中的用户--只对南美洲有访问权--将导致以下结果--只有该用户有访问权的元素。

新行为
在TM1 2.0.9.1版中,对元素安全和MDX查询的解释有所改变。以前似乎是在MDX生成后应用安全层,现在则是在生成之前应用。
请注意,在之前的版本中,在MDX之后应用了安全性,这并不是严格的事实,但有效的结果是用户可以访问的符合MDX标准的元素列表。只是在解释上更容易说安全是在生成集合后作为过滤器应用的。
如果我们以上面的例子为例,我们需要了解MDX发生了什么。MDX语句首先返回元素"World",然后返回它下面的所有元素--直到叶级元素。
{TM1DRILLDOWNMEMBER( {[区域].[世界]}, ALL, RECURSIVE )}。
新的解释是,由于用户无法访问"World"元素,MDX将不返回任何元素。这对动态子集和客户端应用程序中使用的MDX子集表达式都是如此(例如活动表格或动态报告中的行定义)。

其他测试结果
如果我们使用"世界"合并,上述情况是真实的,但如果我们使用元素的直接父级,最终用户可以访问的行为再次发生变化
{TM1DRILLDOWNMEMBER( {[区域].[美洲]}, ALL, RECURSIVE )}。

使用该解释,我们会期望,由于用户没有访问"美洲"元素,MDX将不返回任何元素,然而,我们可以看到,情况并非如此。这很可能是由于MDX中的"成员"和TM1维度中的"元素"之间的差异。如果你想了解更多关于这个问题的信息,请查看Cubewise的博客CODE https://code.cubewise.com/blog/the-future-of-tm1-time-dimensions-in-the-world-of-hierarchies。
结论
当升级到2.0.9.1 TM1时,管理员应注意全面测试已保存的动态子集和终端用户应用于具有元素安全的维度的MDX语句。当使用更高级的函数和立方体数据过滤器时,MDX子集语句可能会相当复杂,因此,如果不进行检查,MDX语句和安全层的执行顺序的这种变化可能会导致用户的空子集和报告。