域A = SSRS用户 域B = SSRS和SSAS实例
大约有5个不同的角色可以在维度数据中隔离允许的成员集。域A用户无法添加到域B中的SSAS多维数据集角色,因为域A不受域B信任。从域A为用户启用SSAS维度数据级别安全性的最佳方法是什么?
TIA!
答案 0 :(得分:0)
最直接的解决方案是将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连接字符串属性来确定“你是谁”以及你可以看到的维度成员。
就Excel而言,我认为您可以设置5个msmdpump虚拟目录,然后在IIS中授予每个域A用户只能访问一个。但是,我不清楚这是如何工作的,因为我不知道如何在连接到SSAS时设置IIS来模拟域B服务帐户。你有没有想过这个?
如果这没有意义,请告诉我。同样,我建议将SSAS移到域A。