0

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

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

不过我明白原因——我还没有为此设置检查。我知道有一个函数 USERNAME 可用于检查用户的身份,但我不想将其与包含有效登录名的表进行比较,而是想检查我刚刚创建的角色。是否有可能做到这一点?如果是怎么办?

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

4

1 回答 1

0

好吧,我想我自己想通了。有两种方法可以做到这一点 -

  1. 使用用户名和关联角色创建一个表。然后在应用拒绝/允许集时,使用 MDX 表达式查找与用户关联的角色,然后应用限制。例如 IIF(IIF(User_Name = [DIM USER].[DIM USER].[Domain Name].CurrentMember,[DIM USER].[DIM USER].[Role].CurrentMember, "Admin") = "RestrictedRole", True , 错误的)

True - 可见,False - 不可见

这只是一个例子,可能需要继续努力。

  1. 在您的多维数据集上创建一个数据源,其中包含一个名为“角色”的附加属性。

例如 DataSource = ;初始目录 = ; 角色=受限角色

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

干杯!!

于 2009-04-30T14:24:44.583 回答