SSAS中的维度安全性

时间:2017-02-06 16:18:29

标签: ssas olap cube

我有一个包含销售数据的SSAS多维数据集。一个维度叫做Department,看起来像这样: 1级:部门

第2级:成本中心

另一个维度如下: 第1级:客户

第2级:AccountNo

第3级:发票

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

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

所以我需要限制对维度客户端的访问。但这不可能很容易地完成,因为有成千上万的客户和一个客户有一天可以在另一个客户与新的成本中心开展业务。客户也可能拥有多个属于不同成本中心的帐户。

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

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

1 个答案:

答案 0 :(得分:0)

好消息是你可以在Dimension Security中做到这一点。

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

有很多令人烦恼的问题,有维度安全性:

  1. 确保在多维数据集维度中设置安全性,而不是数据库维度(它们都列在顶部的下拉列表中,因此它& #39;很容易选择错误的实例。)
  2. 在您的MDX表达式中,仅使用属性层次结构,而不是" user"层次结构。否则你会得到奇怪的错误。
  3. 您的"允许的成员集" Clients维度的表达式应该是这样的:

    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")
    
相关问题