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 查询中未明确使用区域,度量值组中的行也将按区域维度上定义的安全性进行筛选。
我有一个 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 查询中未明确使用区域,度量值组中的行也将按区域维度上定义的安全性进行筛选。