2009-04-30 150 views
0

我正试图在SSAS 2005多维数据集中实现安全性。到目前为止,我已经获得了我的成功,能够创建角色,并将允许和拒绝集应用于我想要应用安全性的成员。现在开始问题 -SSAS 2005多维数据集中的维度安全

如果我在分析服务中浏览并选择角色,安全性按预期工作。但是,当我作为我创建的角色的成员(基本上无权访问某些成员)的用户登录时,安全性不适用于当前的用户属性。

我明白原因 - 虽然我没有把支票放在原地。我知道有一个函数USERNAME可以用来检查用户的身份,但不是将它与包含有效登录名的表进行比较,而是要针对刚刚创建的角色进行检查。是否有可能做到这一点?如果是的话如何?

PS - 我不想创建另一个存储所有有效用户及其各自角色信息的表,并希望这个动态完成。

回答

0

嗯,我想我自己想通了。有两种方法 -

  1. 创建一个包含用户名和关联角色的表。然后,在应用拒绝/允许的集合时,使用MDX表达式查找与用户关联的角色,然后应用限制。 例如IIF(用户名= [DIM用户]。[DIM用户]。[域名] .CurrentMember,[DIM用户]。[DIM用户]。[角色] .CurrentMember,“管理员”)=“RestrictedRole”假)

真 - 可见,假 - 不可见

这只是一个例子,可能需要制定的。

  1. 使用名为“角色”的附加属性在您的多维数据集顶部创建数据源。

例如, DataSource =; Initial Catalog =;角色=限制角色

使用此数据源的任何内容都将自动应用限制。 显然这需要你保留两个数据源的副本 - 一个是受限制的,另一个不是。

干杯!

相关问题