简体   繁体   English

SSAS OLAP多维数据集忽略连接字符串中的凭据

[英]SSAS OLAP Cube Ignores Credentials in Connection String

I'm having quite a interesting issue with my SSAS server today. 我的SSAS服务器今天遇到了一个非常有趣的问题。 I have two (almost) identical data cubes. 我有两个(几乎)相同的数据立方体。 Each named Desserts and Test, both these cubes have one role, and one user assigned in that role: 这两个多维数据集分别命名为“甜点”和“测试”,都具有一个角色,并为此角色分配了一个用户:

在此处输入图片说明

在此处输入图片说明

I'm accessing both cubes in excel via the same " msmdpump.dll " file located in IIS on the same server. 我正在通过位于同一服务器上IIS中的相同“ msmdpump.dll ”文件访问excel中的两个多维数据集。 The connection string for both cubes looks like the following: 两个多维数据集的连接字符串如下所示:

在此处输入图片说明

Desserts: 甜品:

Provider=MSOLAP.8;Persist Security Info=True;User ID=xxxDessertsAdmin;Initial Catalog=xxx_Desserts_GL;Data Source= https://Desserts.xxx.com/olap/msmdpump.dll;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Update Isolation Level=2 提供程序= MSOLAP.8;持久安全信息=正确;用户ID = xxxDessertsAdmin;初始目录= xxx_Desserts_GL;数据源= https://Desserts.xxx.com/olap/msmdpump.dll;MDX兼容性= 1;安全选项= 2 ; MDX缺少会员模式=错误;更新隔离级别= 2

Test: 测试:

Provider=MSOLAP.8;Persist Security Info=True;User ID=xxxTestAdmin;Initial Catalog=xxx_Test_GL;Data Source= https://Test.xxx.com/olap/msmdpump.dll;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Update Isolation Level=2 提供程序= MSOLAP.8;持久安全信息=正确;用户ID = xxxTestAdmin;初始目录= xxx_Test_GL;数据源= https://Test.xxx.com/olap/msmdpump.dll;MDX兼容性= 1;安全选项= 2 ; MDX缺少会员模式=错误;更新隔离级别= 2

Both these cubes are build correctly and contain the same data. 这两个多维数据集都正确构建并包含相同的数据。 I can verify this by using the cube browser in SSAS. 我可以通过使用SSAS中的多维数据集浏览器来验证这一点。

So to review, excluding the different name I have the: same cube, same data, same roles, same users, same "msmdpump.dll", same App Pool, same connection string in Excel. 因此,要进行审查,除了使用不同的名称外,我还有:Excel中相同的多维数据集,相同的数据,相同的角色,相同的用户,相同的“ msmdpump.dll”,相同的应用程序池,相同的连接字符串。 As far as I tell nearly identical cubes. 据我讲几乎相同的多维数据集。 However one of them does not work. 但是其中之一不起作用。

When I try to access the "Desserts" cube in excel in shows I do have permission to access the cube. 当我尝试访问excel中的“ Desserts”多维数据集时,我确实有权访问该多维数据集。 I can reproduce this issue directly by granting permission for the "IUSR" user account to the desserts cube, setting up the connection string, then revoking that access (Removing "IUSR" from "Desserts Role"): 我可以直接通过向“甜点”多维数据集授予“ IUSR”用户帐户的权限,设置连接字符串,然后撤消该访问权限(从“甜点角色”中删除“ IUSR”)来直接重现此问题:

在此处输入图片说明

It appears to me that "msmdpump.dll" ignores the username passed through the connection string, and instead is trying to access the cube using the "IUSR" account. 在我看来,“ msmdpump.dll”将忽略通过连接字符串传递的用户名,而是尝试使用“ IUSR”帐户访问多维数据集。 I do not understand why this is happening. 我不明白为什么会这样。 The app pool for the " msmdpump.dll" is not running under that user name. “ msmdpump.dll”的应用程序池未在该用户名下运行。 I have not configured anything on my server to run under that context. 我没有在服务器上配置任何可在该上下文下运行的东西。

Why is (for only the desserts cube) "msmdpump.dll" ignoring the username in the connection string and instead trying to access the cube using the "IUSR" account? 为什么(仅对于甜点多维数据集)“ msmdpump.dll”忽略连接字符串中的用户名,而是尝试使用“ IUSR”帐户访问多维数据集?

Yes same everything except the website, each cube was going through a separate website, the configuration differed between the two. 是的,除了网站之外,所有内容都一样,每个多维数据集都经过一个单独的网站,两者之间的配置有所不同。 Specifically it was the "Authentication" configuration within IIS that caused the issue: 具体地说,是导致IIS出现问题的“身份验证”配置:

在此处输入图片说明

"Annoymous" authentication needs to be "Disabled" if you wish to have the credentials passed through to the OLAP cube. 如果您希望将凭据传递到OLAP多维数据集,则需要“禁用”身份验证。 Otherwise it seems to just default to the "IUSR" account. 否则,它似乎只是默认使用“ IUSR”帐户。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM