SSAS - 检查用户是否分配了角色

SSAS - check if the user has a role assigned

我正在尝试创建一种在 SSAS 多维多维数据集 中部分自动创建角色和角色权限的方法。 由于我这边的一些限制,这只能通过使用 T-SQL 生成 XMLA 脚本并将它们发送到 SSAS 服务器来完成。

我有 XMLA 脚本来创建、更新和删除角色。 但是,我没有办法检查某个用户是否已经在多维数据集中分配了角色。

我找到了一种使用 discover 从 SSAS 服务器获取响应的方法,例如:

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

其中 returns 目录中现有多维数据集的列表。 我在这里找到了现有请求类型的列表: https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2012/ms126079(v=sql.110)

但我看不到 returns 现有角色 and/or 角色中现有用户的类型

知道如何做到这一点吗?要通过将 XMLA 脚本发送到 SSAS 服务器来获取现有角色或角色中现有成员的列表?

DISCOVER_XML_METADATA 可用于此目的,它 returns 整个 SSAS 数据库结构,因此需要进行一些解析才能具体获取角色和角色成员。