2011-12-15 34 views
0

我实现了基于调用存储过程的.NET程序集的SSAS维度安全性,将其设置为允许的维度集,使用USER作为表达式。使用SQL存储过程的SSAS维度安全性不显示所有数据

我在两个维度上实现了这个安全性。

它像任务和项目

我有两个事实表一个有关任务和其他相关项目

所有这将是简单的,棘手的部分是,任务都与项目,任务维度与项目事实表相关,但并非所有项目都必须具有相关的任务。

任务也与项目有关,因此任务维度跨越项目事实表。

这一切都能正常工作,但是在测试时我注意到返回的数据并不是用户应该有权访问的所有数据,所以我构建了一个日志表,记录了.net程序集将返回的集合,正在访问的用户立方体和用户有权访问的成员数量。

我测试并正确日志表寄存器:

  • 用户行SET

  • 用户A 103 {....}

但是只有20行数据显示。

当我删除了MDX的所有行出现的NON EMPTY子句,但其中null

我挖了一点,发现该问题是在维渡事实表,值当我删除了所提到的所有数据显示的交叉点。

在此先感谢。 GabrielGuimarães

回答

0

听起来就像所有东西都按设计的那样工作......这是NON EMPTY的正确行为......就像为WHERE xxx IS NOT NULL添加过滤器一样。

或者你是否应该在删除NON EMPTY子句后看到空值的值?

+0

nope,我已经更新了这个问题,我发现这个错误与NON EMPTY子句无关。 – 2012-01-12 12:36:29

相关问题