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

Azure Databricks执行dbutils.fs.ls挂载目录时遇403授权错误求助

挂载ADLS Gen2后执行dbutils.fs.ls报403 AuthorizationPermissionMismatch的排查方案

针对你遇到的挂载成功但无法列出目录的403错误,即使已配置Storage Blob Data Contributor权限,可从以下几个方向排查:

  • RBAC权限的有效性问题

    • 确认权限作用范围:必须直接将Storage Blob Data Contributor权限分配给服务主体,且作用范围是目标容器(FileSystem)或存储账户——如果仅在资源组级别分配,容器上的自定义拒绝规则会覆盖允许权限。
    • 等待权限生效:RBAC权限添加后通常需要10-15分钟才能完全同步,刚配置完就重试可能会遇到缓存问题。
    • 检查拒绝规则:排查存储账户或容器的IAM设置中是否存在Deny类型的权限规则,拒绝规则优先级高于允许规则,会直接阻断访问。
  • 存储账户网络限制

    • 登录Azure门户进入存储账户的「网络」设置:
      • 如果设置为「选定的网络」,需确保Databricks工作区所在VNet已加入允许列表,或者开启「允许受信任的Microsoft服务访问此存储账户」选项(Databricks属于受信任服务)。
      • 若为「所有网络」则跳过此检查,但生产环境建议使用选定网络管控访问。
  • ADLS Gen2的ACL权限冲突

    • 启用分层命名空间的ADLS Gen2除了RBAC,还支持ACL(访问控制列表)权限:
      1. 进入存储账户的「容器」页面,找到目标容器,切换到「访问控制(ACL)」标签。
      2. 确认服务主体的Object ID在容器级别拥有read或read-execute权限(列出目录至少需要read权限)。
    • 注意:ACL权限会与RBAC叠加生效,即便RBAC有Contributor权限,ACL的拒绝设置也会导致403错误。
  • 挂载配置或缓存问题

    • 核对挂载代码的source参数:确保容器名、存储账户名完全正确(容器名必须小写),没有拼写或大小写错误。
    • 卸载后重新挂载:执行dbutils.fs.unmount("/mnt/demo"),再重新运行挂载代码,避免旧挂载缓存导致的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:20:11