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

启用AAD仅认证后,Cosmos DB REST API跨分区查询新集合无数据返回

Cosmos DB跨分区查询无数据问题排查建议

1. 排查AAD权限配置

启用AAD-only认证后,新集合不会自动继承旧集合的权限,需确认:

  • 你的AAD主体(服务账号/用户)是否对新集合拥有数据平面读取权限(如Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read)
  • 解码AAD令牌(可通过jwt.ms工具),确认scp声明包含对应权限,aud字段为你的Cosmos DB账户完整URI

2. 核对REST请求头细节

即使脚本相同,新集合的请求可能存在细微偏差:

  • 确认x-ms-documentdb-query-enablecrosspartition头确实设为true,无拼写错误
  • 若查询未指定分区键,不要添加x-ms-documentdb-partitionkey头,否则会过滤其他分区数据
  • 检查Authorization头格式为Bearer {AAD令牌},且令牌未过期
  • 确保x-ms-date头为当前时间,AAD认证对时间同步要求严格,偏差过大可能导致逻辑异常

3. 检查新集合基础配置

  • 对比新旧集合的索引策略:若脚本未显式指定索引策略,Cosmos DB默认索引策略可能更新,导致跨分区查询无法匹配数据
  • 确认新集合分区键与旧集合完全一致,排查脚本创建时是否误改分区键参数

4. 用数据管理器请求做对比

既然数据管理器能正常查询,可直接导出其REST请求到Postman,与你的请求对比:

  • 复制数据管理器的请求头、URI、查询语句,验证是否能在Postman中返回新集合数据
  • 逐行对比差异,重点关注权限头、跨分区开关、资源路径编码是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:32:53