【发布时间】:2011-09-28 22:25:56
【问题描述】:
我是 SSAS 新手,但有人要求我创建一个包含三个立方体的产品(暂时称它们为“A”、“B”和“C”)。另一个团队正在创建 Web 部件“A”、“B”和“C”来访问这些多维数据集,并且有角色“A”、“B”和“C”来确定哪些用户可以访问这些多维数据集。
我的问题
不能保证客户的 SSAS 服务器与 SharePoint 服务器在同一个机器上,因此我们遇到了用户登录 SharePoint 的问题,并且 SP 没有模拟该用户。我们无法保证客户端会让我们安装 Kerberos 身份验证,或将 SharePoint 设置为受信任的站点,因此我们正在调查使用 CustomData 变量传入当前用户的 ID。
问题
但是,这导致了实现多维数据集访问安全性的问题。我是吗
- 创建一个接受 CustomData 变量的“SharePoint”角色,然后授予(通过维度安全性?)对多维数据集的访问权限(通过维度的所有成员?)
- 创建一个“安全多维数据集”,封装谁有权访问什么,并让 Web 部件确定它是否“应该”拥有访问权限,
- 与其将安全性存储在事实表中的用户/多维数据集表单中,不如将其存储在用户/维度表单的成员中(我不喜欢这样,因为传入的数据是用户/多维数据集的形式,并且正在扩展它向维度的成员输出会创建“不必要的”行)。
更多背景信息
目前安全性安排在事实表中
|用户密钥 |安全项密钥 |
其中 Personkey 链接回用户表,而 SecurityItemKey 当前链接到多维数据集列表(我们有一个可用的安全项表,以便用户可以轻松列出他们的选项并检查他们想要的内容)。
我目前正在尝试上面的选项 1.,但是当我按照以下方式创建 MDX 时
Exists(
{[Security Item].[Security Item Key].&[235]},
StrToSet("{([User].[User].[User].[" +
CustomData() + "])}"
),
'Fact Security'
)
对于维度安全性,我收到错误,类似于“‘{2}’维度中的‘{1}’属性生成的维度安全性表达式无效”。 我在查询中使用相同的MDX,就可以了。
请注意,我添加的维度在 MDX 中没有引用,我担心这是问题的一部分,但我找不到任何说“是”或“否”的东西。
那么,我做错了什么,你有什么不同的建议?
【问题讨论】: