使用CustomData的多维数据集级安全性

时间:2011-09-20 21:26:37

标签: security ssas

我是SSAS的新手,但已经被要求创建一个包含三个立方体的产品(现在称它们为“A”,“B”和“C”)。另一个团队正在创建Web部件“A”,“B”和“C”以访问这些多维数据集,并且有“A”,“B”和“C”角色,用于确定哪些用户可以访问多维数据集。

我的问题

不保证客户的SSAS服务器与SharePoint服务器位于同一个盒子上,因此我们遇到登录SharePoint的用户和SP不模仿该用户的问题。我们无法保证客户端将允许我们安装Kerberos身份验证,或将SharePoint设置为受信任的站点,因此我们正在调查使用CustomData变量传递当前用户的ID。

问题

但是,这导致了实现多维数据集访问安全性的问题。我

  1. 创建一个“SharePoint”角色,该角色接受CustomData变量,然后授予(通过维度安全性?)对多维数据集的访问权限(通过维度的所有成员?)
  2. 创建一个“安全多维数据集”,封装谁有权访问什么,并让网络部分确定它是否“应该”有权访问,
  3. 不是将安全性存储在事实表中的用户/多维数据集形式中,而是将其存储在维度表单的用户/成员中(我不喜欢这样,因为传入的数据是用户/多维数据集形式,并且正在扩展它向维度的成员创建“不必要的”行。)
  4. 更多背景信息

    目前,安全性安排在事实表

    | UserKey | SecurityItemKey |

    其中Personkey链接回用户表,SecurityItemKey当前链接到多维数据集列表(我们有一个安全项表可用,以便用户可以轻松列出他们的选项并检查他们想要什么)。

    我目前正在尝试上面的选项1.但是当我按照

    的方式创建MDX时
    Exists(
      {[Security Item].[Security Item Key].&[235]},
        StrToSet("{([User].[User].[User].[" +
                CustomData() + "])}"
        ),
        'Fact Security'
        )
    

    对于维度安全性,我得到的错误是“{2}”维度中的“{1}”属性生成的维度安全表达式无效“。 我在查询中使用相同的MDX,它很好。

    请注意,我在MDX中未引用添加此内容的维度,我担心这是问题的一部分,但我找不到任何说“是”或“否”的内容。

    那么,我做错了什么,你建议做些什么呢?

1 个答案:

答案 0 :(得分:1)

跟进 - 这是我们所做的:

我们制作了一个“安全”多维数据集,而不是强制维度数据安全性来保护整个多维数据集,而SharePoint进程则负责授予或拒绝访问权限。只有SharePoint用户才能访问此角色,并且可以访问所有多维数据集。

普通用户仍然可以通过不同的角色分别获得对每个多维数据集的访问权限。

因此,安全问题是有一个角色可以访问所有人,但我们觉得这是可以接受的,只需要相信该角色的成员被适当分配。