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

同一工作区Service Principal调用Fabric API部分数据集报401未授权

同一工作区内Fabric Dataset API调用权限不一致问题

问题场景

使用服务主体(WinsightsBlazor)调用Fabric Dataset API访问同一工作区的数据集时,出现权限不一致行为:

  • ✅ 数据集ID:254e59de-a6de-4f33-9adf-3d96a406540c(NRT)调用成功
  • ❌ 数据集ID:fbbcf948-ed4e-4dcf-b74a-51742f913d5b(Winsights_SemanticModel)返回401未授权错误

使用的API端点:

POST https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/datasets/{datasetId}/executeQueries

已采取的排查步骤

  • 为服务主体配置了所有必要的API权限
  • 提交支持工单,请求为该服务主体启用REST API访问

核心问题

  1. 为何同一工作区内的不同数据集调用结果不同?
  2. 针对特定数据集是否需要额外的权限或配置?

可能的原因及解决方案

1. 数据集级别权限缺失

工作区或API层面的权限不代表自动拥有所有数据集的访问权。需在Fabric门户找到Winsights_SemanticModel数据集,进入权限设置,添加WinsightsBlazor服务主体,并授予匹配API需求的权限(如读取、执行查询等)。

2. 数据集类型专属限制

两个数据集类型不同(实时NRT vs 语义模型),语义模型可能对服务主体访问有额外要求。检查该数据集的设置,确认是否开启了专属访问限制,或是否需要单独启用服务主体对语义模型的访问权限。

3. 权限同步延迟

Fabric权限配置后可能存在同步延迟,可等待10-15分钟后重试,或重新保存数据集的权限设置触发同步。

4. API权限范围不匹配

确认服务主体的API权限范围是否覆盖语义模型的操作,比如Dataset.ExecuteQueries.All或Dataset.Read.All是否已正确配置并完成管理员同意,部分权限仅对特定数据集类型生效。

5. 行级别安全性(RLS)限制

若Winsights_SemanticModel启用了RLS,即使服务主体有数据集访问权限,也需被添加到对应的RLS角色中,否则会返回401错误。检查该数据集的RLS配置,确保服务主体已被纳入授权角色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:05:06