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

如何在Synapse中使用服务主体访问ADL2并解决目录访问报错?

Synapse链接服务ADL2认证问题排查与解决

问题原因

  1. 链接服务浏览功能与测试连接的权限逻辑差异:
    测试连接仅验证服务主体能否访问指定的具体路径,但链接服务的目录浏览功能需要服务主体拥有容器级的列表权限(因为要遍历容器下的目录结构)。你的服务主体只有文件夹级权限,所以浏览时会触发权限校验失败,显示红色叉号。
  2. OPENROWSET通配符查询的权限要求:
    当使用**通配符时,Synapse会先尝试枚举目标路径下的所有子目录和文件,这需要服务主体具备目标路径父级(容器或上级目录)的列表权限。哪怕你指定的路径和测试连接一致,通配符的使用会触发目录枚举操作,而你的服务主体没有这个权限,因此报错。

配置解决方案

方案1:保留文件夹级权限(不提升容器权限)

  • 调整OPENROWSET查询,避免使用**通配符,直接指定具体的文件路径,示例:
    OPENROWSET(
        BULK 'https://adl2abc.dfs.core.windows.net/container/some/path/specific-file.parquet',
        FORMAT = 'PARQUET'
    ) AS query_result
    
  • 链接服务的红色叉号属于预期现象,只要测试连接正常,不影响指定文件的查询操作。

方案2:支持目录浏览与通配符查询

  • 给服务主体添加容器级的Storage Blob Data Contributor角色;或者采用更细粒度的权限配置:
    • 在容器级别授予List权限,允许服务主体枚举目录
    • 在目标文件夹级别授予Read权限,允许读取文件内容
  • 也可以创建Azure RBAC自定义角色,仅包含以下必要权限:
    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/list/action
    • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read/action

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:42:59