首页 文章

如何管理SSAS表格模型的属性权限

提问于
浏览
0

我们有一个带有几个Fact表和几个Dim表的Tabular模型 . 我们希望管理角色,以便特定角色无法在维度中看到某个属性的成员 .

因此,在具有“工作时间”度量的HR多维数据集中 - 我希望阻止特定角色看到“员工姓名”属性,但仍然显示总工作人员的“工作时间”总和 .

在使用多维时,我只使用了一个MDX表达式,它过滤了维度的“全部”成员,从而显示了属性的总数而不是成员 . 不知道如何在表格模型中这样做 .

有人遇到类似的请求吗?谢谢!

1 回答

  • 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])
    )
    

    这里的逻辑是,如果您的用户看不到任何员工,则不启用该关系 . 如果您的用户可以看到员工,则启用该关系 .

相关问题