我们有一个带有几个Fact表和几个Dim表的Tabular模型。 我们希望管理角色,以便特定角色无法在维度中看到某个属性的成员。
因此,在具有“工作时间”度量的HR多维数据集中 - 我希望阻止特定角色查看“员工姓名”属性,但仍显示总工作人员的“工作时间”总和。
在使用多维时,我只是使用了一个MDX表达式,它过滤了维度的“全部”成员,从而显示了属性的总数而不是成员。 不知道如何在表格模型中这样做。
有人遇到类似的请求吗? 谢谢!
答案 0 :(得分:0)
是的,表格模型没有为您提供禁用“视觉总计”的选项。所以这并不容易。但是,如果你有创意,你可以做到。如果您还记得计算列是在没有安全性的处理时计算的,那么您可以提前存储所需的汇总。将这些汇总存储在某个位置,即使安全性有效,用户也可以将其读取。在这种情况下,您可能需要将汇总放在一个单独的表中,与员工分开,因为该表中的所有行都将被隐藏。这是一个完整的写作: http://cathydumas.com/2012/05/19/row-security-and-hierarchiespart-1/
但是在您的情况下,因为您要隐藏所有会导致所有相关事实表行由于安全性而消失的Employee表行。所以这就是我的建议。首先,禁用与Employee表的关系。其次,在这种模式之后模拟你的措施:
Work Hours := IF(
COUNTROWS(Employee)>0,
CALCULATE(
SUM(FactHours[Work Hours]),
USERELATIONSHIP(FactHours[EmployeeKey], Employee[EmployeeKey])
),
SUM(FactHours[Work Hours])
)
这里的逻辑是,如果您的用户看不到任何员工,则不启用该关系。如果您的用户可以看到员工,则启用该关系。