2

我们使用的是 SSAS 2008。我们有一个与数据相关的权限问题。我们成功地将 SSAS 角色应用到传入用户 (Active Directory [AD]) 的上下文中。即返回的结果是基于用户的SSAS角色,并限制从基于角色的维度返回的数据。

据我所知,您可以将多个角色应用于用户,以便维度承担相关角色并限制其结果 - 但是此条件作为交集应用(即 AND) - 是否能够作为联合应用(即 OR)

有几点需要注意。
- 我们正在通过 Excel 访问我们的多维数据集,因此在某些 MDX 中依赖上述智能不一定可以实现,因为用户可以在任何维度上查询(有些可能受角色限制,而另一些则不受)
-我们玩弄了拥有的想法两个多维数据集加上每个用户两个不同的 userId(在不同的 AD 组中);用户将根据他们想要查看的数据(以及他们将要查询的多维数据集)从 Excel 中提取数据;这很混乱,因为我们希望用户结果全部包含在一个结果集中而不是两个单独的结果集中

有没有人经历和/或解决上述问题 - 是否有可能 - 是否有替代方案?

4

3 回答 3

1

If you need a OR condition on 2 dimensions, you can add another dimension with 2 levels being the same level of the 2 initial dimension:

For instance, you want to limit the role to [Country].[France] or [Currency].[USD], then you can add a [CountryThenCurrency] dimension and allow the 2 following paths: [CountryThenCurrency].[France].[*] and [CountryThenCurrency].[*].[USD]

In other words: add dimensions in order to be able all your OR conditions in a single dimension.

于 2012-08-03T20:08:50.630 回答
1

您可以将该Roles属性添加到 SSAS 连接字符串,该字符串包含要评估的数据库角色的逗号分隔列表。只有在该列表中应用的角色才会被服务器应用。

Data Source=localhost;Initial Catalog=MySSASDb;Roles=RoleA,RoleB
于 2012-08-03T09:41:53.197 回答
0

我一直在寻找解决这个问题的方法,并找到了 Chris Webb 的一篇很棒的文章。

http://cwebbbi.wordpress.com/2011/12/22/replacing-cell-security-with-dimension-security/

这个想法是创建一个名为 DIM_Security 的垃圾维度,并将两个维度的所有不同组合放入其中。现在通过 MDX 表达式,您可以获得具有维度 1 = 'allowedvalue' 或维度 2 = 'allowedvalue' 的所有成员的 UNION,因此您具有 OR 权限。

此外,Webb 解释了如何使用动态安全性来做到这一点。

不复制所有的 MDX,因为原始帖子有好几页,有很多屏幕截图,并且在整个网络上链接了很多次。

于 2014-06-25T20:16:43.537 回答