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

Azure Analysis Services中如何为TMSL脚本角色成员添加描述

解决Azure Analysis Service角色成员添加描述的问题

问题原因

兼容性级别1500的表格模型,其TMSL脚本的RoleMember对象并不支持description属性——这是执行脚本报错的直接原因。AAS的TMSL语法规范里,角色成员仅支持memberName(对应AAD对象ID)和identityProvider属性,没有预留描述字段的位置。

正确实现方式

1. 角色级描述替代

如果不需要针对单个成员添加描述,可以给整个角色设置描述,用来关联该角色对应的AAD组友好名称:

{
  "alter": {
    "object": {
      "database": "YourDatabase",
      "role": "YourRole"
    },
    "role": {
      "name": "YourRole",
      "description": "财务部门只读访问组(AAD对象ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)",
      "members": [
        {
          "memberName": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "identityProvider": "AzureAD"
        }
      ],
      "modelPermission": "read"
    }
  }
}

2. 外部元数据映射

如果必须针对每个AAD组成员记录友好名称,只能通过外部系统维护映射关系:

  • 自建一个元数据表,存储AAD对象ID、友好名称、对应角色等信息
  • 在SSMS手动编辑角色时,可在备注中记录友好名称(但该备注不会被TMSL脚本识别或导出)

3. 升级模型兼容性(可选)

如果可以将模型兼容性级别升级到1600及以上,虽然TMSL的RoleMember仍不支持description,但可以利用XMLA脚本的扩展属性来存储自定义元数据,不过这需要更复杂的脚本编写,仅适用于高级场景。

正确的TMSL更新角色成员脚本示例

{
  "alter": {
    "object": {
      "database": "AdventureWorksTabular1500",
      "role": "FinanceReadOnly"
    },
    "role": {
      "members": [
        {
          "memberName": "a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
          "identityProvider": "AzureAD"
        }
      ]
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:37:41