You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过XMLA脚本查询SSAS多维数据集的角色及成员归属?

如何通过XMLA的Discover请求查询SSAS角色及成员信息

我之前在做SSAS多维数据集角色与权限的自动化创建时,遇到了个小麻烦——已经能通过T-SQL生成XMLA脚本完成角色的增删改操作,但就是没法查询特定用户是否已经被分配了某个角色。我已经会用Discover请求来查询目录里的数据集列表,比如这个示例脚本:

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
  <RequestType>MDSCHEMA_CUBES</RequestType>
  <Restrictions />
  <Properties>
    <PropertyList>
      <Catalog>MyCube</Catalog>
    </PropertyList>
  </Properties>
</Discover>

我翻了官方的Request类型列表,但没找到能返回角色或角色成员的类型,后来摸索出了两个好用的请求类型,刚好能解决这个问题:

1. 查询所有角色信息:DISCOVER_ROLES

这个请求可以返回指定数据库(或整个SSAS实例)下的所有角色基础信息,包括角色ID、名称、描述等。示例脚本如下:

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
  <RequestType>DISCOVER_ROLES</RequestType>
  <Restrictions>
    <RestrictionList>
      <Catalog>MyCube</Catalog>
      <!-- 如果要限定查询某个数据库就保留这个节点,查整个实例可以移除 -->
    </RestrictionList>
  </Restrictions>
  <Properties>
    <PropertyList>
      <Catalog>MyCube</Catalog>
    </PropertyList>
  </Properties>
</Discover>

2. 查询角色成员或用户所属角色:DISCOVER_ROLE_MEMBERS

这个请求是核心,既能查某个角色下的所有成员,也能反过来查某个用户属于哪些角色。

场景一:查询特定用户的已分配角色

只需在限制条件里指定用户账号(格式要和SSAS中存储的一致,比如域账号DOMAIN\UserName):

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
  <RequestType>DISCOVER_ROLE_MEMBERS</RequestType>
  <Restrictions>
    <RestrictionList>
      <Catalog>MyCube</Catalog>
      <MemberName>DOMAIN\UserName</MemberName>
    </RestrictionList>
  </Restrictions>
  <Properties>
    <PropertyList>
      <Catalog>MyCube</Catalog>
    </PropertyList>
  </Properties>
</Discover>

场景二:查询特定角色的所有成员

把限制条件换成角色名称即可:

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
  <RequestType>DISCOVER_ROLE_MEMBERS</RequestType>
  <Restrictions>
    <RestrictionList>
      <Catalog>MyCube</Catalog>
      <RoleName>MyCustomRole</RoleName>
    </RestrictionList>
  </Restrictions>
  <Properties>
    <PropertyList>
      <Catalog>MyCube</Catalog>
    </PropertyList>
  </Properties>
</Discover>

这些请求返回的是标准的行集结果,你可以通过T-SQL的OPENROWSET工具或者专门的XMLA执行客户端来解析,提取需要的角色或用户关联信息。

内容的提问来源于stack exchange,提问作者Alex_404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:39:38