Sql server 2008 SQL存储过程未显示所有数据的SSAS维度安全性

Sql server 2008 SQL存储过程未显示所有数据的SSAS维度安全性,sql-server-2008,ssas,cube,Sql Server 2008,Ssas,Cube,我基于一个.NET程序集实现了SSAS维度安全性,该程序集调用一个存储过程,使用用户作为表达式,将其设置为允许的维度集 我在两个维度上实现了这种安全性 这有点像任务和项目 我有两个事实表,一个与任务相关,另一个与项目相关 所有这些都很简单,但棘手的部分是任务与项目相关,任务维度与项目事实表相关,但并非所有项目都必须具有与任务相关的维度 任务也与项目相关,因此任务维度跨项目事实表 这一切都是可行的,但在测试时,我注意到返回的数据并不是用户应该访问的所有数据,因此我建立了一个日志表,记录.net程序

我基于一个.NET程序集实现了SSAS维度安全性,该程序集调用一个存储过程,使用用户作为表达式,将其设置为允许的维度集

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

这有点像任务和项目

我有两个事实表,一个与任务相关,另一个与项目相关

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

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

这一切都是可行的,但在测试时,我注意到返回的数据并不是用户应该访问的所有数据,因此我建立了一个日志表,记录.net程序集将返回的集合、访问多维数据集的用户以及用户有权访问的成员数

我正确地测试了它和日志表寄存器:

  • 用户行集

  • 用户A 103{…}

但是,仅显示20行数据

当我删除MDX的NON-EMPTY子句时,所有行都出现了,但是其中的值为NULL

我稍微挖掘了一下,发现问题出在与事实表相交的维度上,当我删除那些提到的相交时,所有数据都显示出来了

提前谢谢。
Gabriel Guimarães

听起来一切都在按设计工作……这是非空的正确行为……这就像为xxx不为NULL的位置添加了一个过滤器


或者,您是说在删除NON-EMPTY子句后,应该有一些值可以看到null

不,我已经更新了这个问题,我发现这个错误和NON-EMPTY子句无关。你们能发布一个立方体结构和维度使用选项卡的屏幕截图来帮助我更好地理解它是如何建模的吗?