允许来自不受信任域的用户访问维度数据

Allowing users from a non trusted domain to Dimension data

域 A = SSRS 用户 域 B = SSRS 和 SSAS 实例

大约有 5 个不同的角色来隔离维度数据中允许的成员集。域 A 用户无法添加到域 B 中的 SSAS 多维数据集角色,因为域 A 不受域 B 的信任。为域 A 中的用户启用 SSAS 维度数据级别安全性的最佳方法是什么?

TIA!

最直接的解决方案是将 SSAS 服务器移动到域 A。这就是用户所在的位置。另外,如果它在域 A 中,则域 B 用户可以连接,因为域 A 以一种方式信任域 B。我强烈推荐这个。

如果那不是一个选项,那么您可以试试这个。在 SSRS 中,您应该能够在 SSAS 数据源上设置凭据以使用 DOMAINB\ServiceAccount。然后它应该能够将 SSAS 数据拉入 SSRS。

要将基于角色的安全性纳入 SSAS,我看到了两个选项。首先,您可能只创建 5 个报告并使用 SSRS 安全性来控制谁可以看到哪个报告。在幕后,5 个相同的报告中的每一个都将使用 SSRS 数据源上的不同服务帐户来连接到 SSAS。基本上每次使用都将被授予对 5 个报告之一的访问权限,该报告将使用 5 个服务帐户之一连接到 SSAS,SSAS 中基于角色的安全性将显示该服务帐户的适当数据。

如果这不可接受,您可以考虑使用 CustomData 使用动态安全性,因为您不能让域 A 用户连接到域 B 上的 SSAS。

典型的动态安全性使用一个具有 MDX 表达式的角色和 UserName() MDX 函数来查找当前用户可以访问的内容: http://hccmsbi.blogspot.com/2007/08/implementing-user-specific-security-in.html

您的情况,因为您实际上无法与域 A 用户连接到域 B 上的 SSAS,您可以使用 CustomData() MDX 函数而不是 UserName() MDX 函数。您可能必须在 SSRS 中使用基于表达式的连接字符串。硬编码的连接字符串如下所示: 数据源=ssasserver.domainb.local;初始目录=YourDB;CustomData=JoeBlow

一个角色只需要 DOMAINB\ServiceAccount 作为成员。但在内部它会使用 CustomData 连接字符串 属性 来计算 "who you are" 以及您可以看到的维度成员。

至于 Excel,我认为您可以设置 5 个 msmdpump 虚拟目录,然后在 IIS 中只授予每个域 A 用户访问一个目录的权限。但是,我不清楚它是如何工作的,因为我不知道您将如何设置 IIS 以在它连接到 SSAS 时模拟域 B 服务帐户。你有没有想过这个?

如果这没有意义,请告诉我。同样,我建议将 SSAS 移至域 A。