【发布时间】:2017-09-07 15:21:14
【问题描述】:
今天我的 SSAS 服务器遇到了一个非常有趣的问题。我有两个(几乎)相同的数据立方体。每个名为 Desserts 和 Test 的多维数据集都有一个角色,并分配了一个用户:
我正在通过位于同一服务器上 IIS 中的相同“msmdpump.dll”文件访问 excel 中的两个多维数据集。两个多维数据集的连接字符串如下所示:
甜点:
Provider=MSOLAP.8;Persist Security Info=True;User ID=xxxDessertsAdmin;初始目录=xxx_Desserts_GL;数据 来源=https://Desserts.xxx.com/olap/msmdpump.dll;MDX 兼容性=1;安全选项=2;MDX 缺少成员模式=错误;更新 隔离级别=2
测试:
Provider=MSOLAP.8;Persist Security Info=True;User ID=xxxTestAdmin;初始目录=xxx_Test_GL;数据 来源=https://Test.xxx.com/olap/msmdpump.dll;MDX 兼容性=1;安全选项=2;MDX 缺少成员模式=错误;更新 隔离级别=2
这两个多维数据集均正确构建并包含相同的数据。我可以通过使用 SSAS 中的多维数据集浏览器来验证这一点。
所以回顾一下,不包括不同的名称:相同的多维数据集、相同的数据、相同的角色、相同的用户、相同的“msmdpump.dll”、相同的应用程序池、相同的 Excel 连接字符串。据我所知,几乎相同的立方体。但是其中一个不起作用。
当我尝试在节目中访问 excel 中的“甜点”多维数据集时,我确实有权访问该多维数据集。我可以通过将“IUSR”用户帐户的权限授予甜点立方体,设置连接字符串,然后撤销该访问权限(从“甜点角色”中删除“IUSR”)来直接重现此问题:
在我看来,“msmdpump.dll”忽略了通过连接字符串传递的用户名,而是尝试使用“IUSR”帐户访问多维数据集。我不明白为什么会这样。 “msmdpump.dll”的应用程序池未在该用户名下运行。我没有在我的服务器上配置任何东西以在该上下文下运行。
为什么(仅针对甜点多维数据集)“msmdpump.dll”会忽略连接字符串中的用户名,而是尝试使用“IUSR”帐户访问多维数据集?
【问题讨论】:
标签: excel ssas pivot-table olap cube