多成员mdx查询returns错误(访问指定成员的权限)
Multiple member mdx query returns error (permission to access the specified member)
我想说明一下,我是 SSAS 和 MDX 的新手。
在过去的几天里,我一直在研究一个 excel 生成的错误查询。
问题是当尝试从联机多维数据集数据源读取数据时,excel 生成了一个查询,阻止了对该多维数据集的其他读取。查询是针对 AZURE 多维数据集执行的,我设法对其进行概要分析并获得以下查询:
with set __XLUniqueNames as {[Stores].[Chain].[Chain].&[SuperBrugsen], [Stores].[Chain].[Chain].&[Salling], [Stores].[Chain].[Chain].&[SuperBrugsen] }
set __XLDrilledUp as
Generate(__XLUniqueNames,
{ IIF([Stores].[Chain].currentmember.LEVEL_NUMBER <= 2147483647,
[Stores].[Chain].currentmember,
Ancestor([Stores].[Chain].currentmember,
[Stores].[Chain].currentmember.LEVEL_NUMBER - 2147483647)) } )
member [Measures].__XLPath as
Generate(
Ascendants([Stores].[Chain].currentmember),
[Stores].[Chain].currentmember.unique_name,
"__XLPSEP")
select { [Measures].__XLPath } on 0,
__XLDrilledUp on 1
from [SomeCube]
cell properties value
每次查询包含多个成员(该维度的现有成员)时,它会出错并显示此消息:
"Either you do not have permission to access the specified member or the specified member does not exist.".
我尝试过的:
首先,我试图找出一个错误的成员组合模式,但没有成功。似乎对于某些特定成员,我得到了错误,而对于某些成员,却没有。对于多维数据集中不存在的单个成员、重复成员和成员组合,它不会出错。
其次,我确实在不同的多维数据集(本地 SSAS)上尝试了查询,但没有收到错误。
第三,通过修改连接字符串,我试图让 Excel 忽略丢失的成员,希望它能使用设置为忽略的 "MDXMissingMemberMode" 标志工作。我没有工作。
第四,我试图剖析查询以查看哪个子句给出了错误。由于我对 MDX 的了解有限,我怀疑 "currentmember" 及其 "LEVEL_NUMBER" 属性 有问题。我的猜测是它无法为集合中的下一个成员获取当前成员。
第五,最后也是最长的,无意中发现在SSMS中可以在mdx会话中执行查询(右键点击cube -> New query)也可以打开多维数据集处于浏览模式(右键单击多维数据集 -> 浏览),这导致 UI 类似于 mdx 查询。
没有惊喜,在此浏览 "mode" 中,我的查询每次都成功执行。对此很感兴趣,我开始分析请求并查看有什么不同。不同之处在于一些额外的 xml 结构,例如带有属性的列表。看到这个我想我可以从 excel 操纵我的连接字符串来发送一些属性来让它工作,但最后我没有工作。
其他有用的特性:
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis">
<Catalog>SomeCatalog</Catalog>
<ShowHiddenCubes>true</ShowHiddenCubes>
<SspropInitAppName>Microsoft SQL Server Management Studio</SspropInitAppName>
<Timeout>3600</Timeout>
<LocaleIdentifier>1033</LocaleIdentifier>
<ClientProcessID>24400</ClientProcessID>
<DataSourceInfo/>
<Format>Tabular</Format>
<Content>Schema</Content>
<DbpropMsmdFlattened2>true</DbpropMsmdFlattened2>
<ReturnCellProperties>true</ReturnCellProperties>
<DbpropMsmdActivityID>2309dfa2-3607-41b2-9446-8ece2f5ababa</DbpropMsmdActivityID>
<DbpropMsmdCurrentActivityID>2309dfa2-3607-41b2-9446-8ece2f5ababa</DbpropMsmdCurrentActivityID>
<DbpropMsmdRequestID>d3dbd079-5ca7-496c-ab55-afea71889238</DbpropMsmdRequestID>
</PropertyList>
其他不起作用的属性:
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis">
<Catalog>SomeCatalog</Catalog>
<SspropInitAppName>Microsoft SQL Server Management Studio - Query</SspropInitAppName>
<LocaleIdentifier>1033</LocaleIdentifier>
<ClientProcessID>24400</ClientProcessID>
<DataSourceInfo/>
<Format>Native</Format>
<AxisFormat>TupleFormat</AxisFormat>
<Content>SchemaData</Content>
<Timeout>0</Timeout>
<DbpropMsmdActivityID>e5e75ad6-8fca-4f25-abba-047f86198602</DbpropMsmdActivityID>
<DbpropMsmdCurrentActivityID>e5e75ad6-8fca-4f25-abba-047f86198602</DbpropMsmdCurrentActivityID>
<DbpropMsmdRequestID>8901787f-15a7-48a0-86eb-18ff0b92bdc4</DbpropMsmdRequestID>
</PropertyList>
Excel 附加属性:
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<Catalog>SomeCatalog</Catalog>
<Timeout>0</Timeout>
<Format>Native</Format>
<DbpropMsmdFlattened2>false</DbpropMsmdFlattened2>
<SafetyOptions>2</SafetyOptions>
<Dialect>MDX</Dialect>
<MdxMissingMemberMode>Error</MdxMissingMemberMode>
<DbpropMsmdOptimizeResponse>9</DbpropMsmdOptimizeResponse>
<DbpropMsmdActivityID>9D69640F-553A-4970-BD4E-7234F1CD928C</DbpropMsmdActivityID>
<DbpropMsmdRequestID>B5E10FF0-EF2F-409E-83BF-CD2DBA20C2BE</DbpropMsmdRequestID>
<LocaleIdentifier>1030</LocaleIdentifier>
<DbpropMsmdMDXCompatibility>1</DbpropMsmdMDXCompatibility>
</PropertyList>
单个成员工作 mxd 查询的结果:
SuperBrugsen [Stores].[连锁店].[连锁店].&[SuperBrugsen]__XLPSEP[Stores].[连锁店].[全部]
这是我可以为我的问题收集的所有信息。我的下一步是向 Microsoft 寻求帮助,但由于成本原因我不想这样做。
你们中有人可以帮帮我吗?任何想法或建议都非常受欢迎,因为我 运行 没有想法。
看来问题已经自行解决了。很可能有一个更新解决了这个问题。参考到 Azure 更新日志页面:https://azure.microsoft.com/en-us/updates/?product=analysis-services&status=nowavailable
我想说明一下,我是 SSAS 和 MDX 的新手。
在过去的几天里,我一直在研究一个 excel 生成的错误查询。
问题是当尝试从联机多维数据集数据源读取数据时,excel 生成了一个查询,阻止了对该多维数据集的其他读取。查询是针对 AZURE 多维数据集执行的,我设法对其进行概要分析并获得以下查询:
with set __XLUniqueNames as {[Stores].[Chain].[Chain].&[SuperBrugsen], [Stores].[Chain].[Chain].&[Salling], [Stores].[Chain].[Chain].&[SuperBrugsen] }
set __XLDrilledUp as
Generate(__XLUniqueNames,
{ IIF([Stores].[Chain].currentmember.LEVEL_NUMBER <= 2147483647,
[Stores].[Chain].currentmember,
Ancestor([Stores].[Chain].currentmember,
[Stores].[Chain].currentmember.LEVEL_NUMBER - 2147483647)) } )
member [Measures].__XLPath as
Generate(
Ascendants([Stores].[Chain].currentmember),
[Stores].[Chain].currentmember.unique_name,
"__XLPSEP")
select { [Measures].__XLPath } on 0,
__XLDrilledUp on 1
from [SomeCube]
cell properties value
每次查询包含多个成员(该维度的现有成员)时,它会出错并显示此消息:
"Either you do not have permission to access the specified member or the specified member does not exist.".
我尝试过的:
首先,我试图找出一个错误的成员组合模式,但没有成功。似乎对于某些特定成员,我得到了错误,而对于某些成员,却没有。对于多维数据集中不存在的单个成员、重复成员和成员组合,它不会出错。
其次,我确实在不同的多维数据集(本地 SSAS)上尝试了查询,但没有收到错误。
第三,通过修改连接字符串,我试图让 Excel 忽略丢失的成员,希望它能使用设置为忽略的 "MDXMissingMemberMode" 标志工作。我没有工作。
第四,我试图剖析查询以查看哪个子句给出了错误。由于我对 MDX 的了解有限,我怀疑 "currentmember" 及其 "LEVEL_NUMBER" 属性 有问题。我的猜测是它无法为集合中的下一个成员获取当前成员。
第五,最后也是最长的,无意中发现在SSMS中可以在mdx会话中执行查询(右键点击cube -> New query)也可以打开多维数据集处于浏览模式(右键单击多维数据集 -> 浏览),这导致 UI 类似于 mdx 查询。 没有惊喜,在此浏览 "mode" 中,我的查询每次都成功执行。对此很感兴趣,我开始分析请求并查看有什么不同。不同之处在于一些额外的 xml 结构,例如带有属性的列表。看到这个我想我可以从 excel 操纵我的连接字符串来发送一些属性来让它工作,但最后我没有工作。
其他有用的特性:
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis">
<Catalog>SomeCatalog</Catalog>
<ShowHiddenCubes>true</ShowHiddenCubes>
<SspropInitAppName>Microsoft SQL Server Management Studio</SspropInitAppName>
<Timeout>3600</Timeout>
<LocaleIdentifier>1033</LocaleIdentifier>
<ClientProcessID>24400</ClientProcessID>
<DataSourceInfo/>
<Format>Tabular</Format>
<Content>Schema</Content>
<DbpropMsmdFlattened2>true</DbpropMsmdFlattened2>
<ReturnCellProperties>true</ReturnCellProperties>
<DbpropMsmdActivityID>2309dfa2-3607-41b2-9446-8ece2f5ababa</DbpropMsmdActivityID>
<DbpropMsmdCurrentActivityID>2309dfa2-3607-41b2-9446-8ece2f5ababa</DbpropMsmdCurrentActivityID>
<DbpropMsmdRequestID>d3dbd079-5ca7-496c-ab55-afea71889238</DbpropMsmdRequestID>
</PropertyList>
其他不起作用的属性:
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis">
<Catalog>SomeCatalog</Catalog>
<SspropInitAppName>Microsoft SQL Server Management Studio - Query</SspropInitAppName>
<LocaleIdentifier>1033</LocaleIdentifier>
<ClientProcessID>24400</ClientProcessID>
<DataSourceInfo/>
<Format>Native</Format>
<AxisFormat>TupleFormat</AxisFormat>
<Content>SchemaData</Content>
<Timeout>0</Timeout>
<DbpropMsmdActivityID>e5e75ad6-8fca-4f25-abba-047f86198602</DbpropMsmdActivityID>
<DbpropMsmdCurrentActivityID>e5e75ad6-8fca-4f25-abba-047f86198602</DbpropMsmdCurrentActivityID>
<DbpropMsmdRequestID>8901787f-15a7-48a0-86eb-18ff0b92bdc4</DbpropMsmdRequestID>
</PropertyList>
Excel 附加属性:
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<Catalog>SomeCatalog</Catalog>
<Timeout>0</Timeout>
<Format>Native</Format>
<DbpropMsmdFlattened2>false</DbpropMsmdFlattened2>
<SafetyOptions>2</SafetyOptions>
<Dialect>MDX</Dialect>
<MdxMissingMemberMode>Error</MdxMissingMemberMode>
<DbpropMsmdOptimizeResponse>9</DbpropMsmdOptimizeResponse>
<DbpropMsmdActivityID>9D69640F-553A-4970-BD4E-7234F1CD928C</DbpropMsmdActivityID>
<DbpropMsmdRequestID>B5E10FF0-EF2F-409E-83BF-CD2DBA20C2BE</DbpropMsmdRequestID>
<LocaleIdentifier>1030</LocaleIdentifier>
<DbpropMsmdMDXCompatibility>1</DbpropMsmdMDXCompatibility>
</PropertyList>
单个成员工作 mxd 查询的结果:
SuperBrugsen [Stores].[连锁店].[连锁店].&[SuperBrugsen]__XLPSEP[Stores].[连锁店].[全部]
这是我可以为我的问题收集的所有信息。我的下一步是向 Microsoft 寻求帮助,但由于成本原因我不想这样做。
你们中有人可以帮帮我吗?任何想法或建议都非常受欢迎,因为我 运行 没有想法。
看来问题已经自行解决了。很可能有一个更新解决了这个问题。参考到 Azure 更新日志页面:https://azure.microsoft.com/en-us/updates/?product=analysis-services&status=nowavailable