SSAS 多维数据集按角色限制数据源

SSAS cube restrict data source by role

我有一个 SSAS 多维 (MOLAP) 多维数据集的数据源,它有一个名为 RegionId 的列,其中的值将是 1, 2, 3 or 4

然后我在 SSAS 中有一些用户角色,我想通过单个 RegionId(即 1)限制用户在度量值组中看到的数据。

示例:

RegionId = 1, Week = 1, Value = 500 RegionId = 1, Week = 1, Value = 700 RegionId = 2, Week = 1, Value = 300 RegionId = 3, Week = 1, Value = 500

如果 Region 1 用户要在多维数据集中查看此数据并按 Week = 1 对数据进行分组,那么他们应该看到总计 700 + 500 = 1200 而不是所有区域的总计.

有一种方法可以限制 select 在 dimension 中的数据,但如果他们只使用时间维度,那么他们会在 measures group 中看到值与他们的特定区域无关。

我相信这种东西叫做row level security?但是,我还没有找到一种明确的方法来为多维立方体执行此操作,仅在我没有使用的表格中。

有人知道如何实现吗?轻松使用角色权限设置?这可以使用一些 MDX 在角色的单元格数据选项卡中完成吗?如果是的话,你能举个例子吗?

如果您选中可视总计框,您的多维数据集将 return 仅显示区域相关数据,如下所述:http://easyroles.com/2014/02/visual-totals-in-ssas-security/

正确。 Region 维度在概念上仍然存在,但其当前成员是 "All Region" 成员——并且 Region 维度安全性的 Visual Totals 仍然为 "All Region" 成员启动。

因此,即使在 MDX 查询中未明确使用区域,度量值组中的行也将按区域维度上定义的安全性进行筛选。