SSAS 2005多维数据集中的维度安全性

时间:2009-04-30 11:40:02

标签: sql sql-server ssas

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

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

我理解这个原因 - 我没有把支票放在同一个地方。我知道有一个函数USERNAME,我可以用来检查用户的身份,但不是将它与包含有效登录的表进行比较,我想检查我刚刚创建的角色。是否有可能做到这一点?如果是的话怎么样?

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

1 个答案:

答案 0 :(得分:0)

嗯,我想我自己想出来了。有两种方法可以做到这一点 -

  1. 创建一个包含用户名和关联角色的表。然后,在应用拒绝/允许集时,使用MDX表达式查找与用户关联的角色,然后应用限制。 例如。 IIF(IIF(User_Name = [DIM USER]。[DIM USER]。[域名] .CurrentMember,[DIM USER]。[DIM USER]。[Role] .CurrentMember,“Admin”)=“RestrictedRole”,True,假)
  2. 真实 - 可见,虚假 - 不可见

    这只是一个例子,可能需要处理。

    1. 使用名为“角色”的附加属性在多维数据集的顶部创建数据源。
    2. E.g。 DataSource =;初始目录=;角色= RestrictedRole

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

      干杯!!