【问题标题】:Dimension security in SSASSSAS 中的维度安全性
【发布时间】:2017-02-10 19:27:49
【问题描述】:

我有一个包含销售数据的 SSAS 多维数据集。一维称为部门,如下所示: 1级:部门

2 级:成本中心

另一个维度如下所示: 级别 1:客户

第 2 级:帐号

第 3 级:发票

某些用户应该只能看到特定的成本中心。我通过为维度部门创建角色和对维度数据的有限访问来解决了这个问题。到目前为止效果很好。

现在我的经理说不应该让访问受限的用户看到没有与受限用户的成本中心做生意的客户的名字。

所以我需要限制对维度客户端的访问。但这不是很容易做到的,因为有成千上万的客户,而一个客户有一天可以从另一个客户那里与一个新的成本中心做生意。一个客户也可能有多个属于不同成本中心的帐户。

我需要在这里输入一些关于我的选项的信息。 某种子立方体是一种选择,还是一个新的立方体(听起来有点过头了)?另一种选择是在使用成本中心、帐户和发票的客户维度中创建另一个层次结构。这将不得不消除客户级别,因为一个客户可以有多个属于不同成本中心的帐户。

欢迎任何意见,我不需要确切的解决方案,但需要指导......

【问题讨论】:

    标签: ssas olap cube


    【解决方案1】:

    好消息是您可以在 Dimension Security 中执行此操作。

    您必须为这些用户设置角色。在 VS 中角色的维度数据选项卡中,有一个高级选项卡。在这里您可以输入返回一组用户可以看到的维度成员的 MDX。

    维度安全有很多烦人的陷阱:

    1. 确保在 cube 维度中设置安全性,而不是在 database 维度中(它们都将列在顶部的下拉列表中,因此非常简单选择错误的实例)。
    2. 在您的 MDX 表达式中,仅使用属性层次结构,而不是“用户”层次结构。否则你会得到奇怪的错误。

    “客户”维度的“允许的成员集”表达式应如下所示:

    EXISTS([Client].[An attribute hierarchy].Members,
    {A set of cost centers the user is allowed to see},
    "Name of a measure group that will have a non-NULL value if the client has 
     had dealings with the cost centre")
    

    例如,我想在我正在处理的多维数据集上检查这个表达式(将客户限制为购买特定品牌的人)是:

    EXISTS([Customer].[Customer Key].Members,[Product].[Brand].&[MH],"OrderItems")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多