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

Azure Databricks Unity Catalog托管卷无法在Notebook访问的问题

问题描述

配置Unity Catalog及托管卷后,可在Databricks Workspace UI中上传、下载托管卷文件,但无法通过Notebook访问。创建全用途计算集群后执行dbutils.fs.ls("/Volumes/catalog1/schema1/volumn11")等代码时,收到403未授权错误:

Operation failed: "This request is not authorized to perform this operation.", 403, GET

配置流程
  • 本人为Azure Databricks账户管理员、元数据存储管理员及工作区管理员
  • 创建Premium Tier级别的Azure Databricks工作区
  • 创建名为metastore1的Databricks元数据存储
  • 创建启用分层命名空间的Azure ADSL Gen2存储账户adsl_gen2_1
  • 创建Azure Databricks访问连接器access_connector_for_dbr_1(Azure托管标识)
  • 为access_connector_for_dbr_1分配adsl_gen2_1的Storage Blob Data Contributor和Storage Queue Data Contributor角色
  • 在adsl_gen2_1下创建两个容器:adsl_gen2_1_container_catalog_default、adsl_gen2_1_container_schema1
  • 创建Databricks存储凭据dbr_strg_cred_1,关联access_connector_for_dbr_1的资源ID,未设置权限
  • 创建两个使用dbr_strg_cred_1的外部位置:dbr_ext_loc_catalog_default(指向对应容器)、dbr_ext_loc_schema1(指向对应容器),均未设置权限
  • 在metastore1下创建Catalog catalog1,设置dbr_ext_loc_catalog_default为存储位置
  • 在catalog1下创建Schema schema1,设置dbr_ext_loc_schema1为存储位置
  • 在schema1下创建托管卷volumn11
  • 在Databricks UI可正常操作该卷,但Notebook执行以下代码均报错:
    • dbutils.fs.ls("/Volumes/catalog1/schema1/volumn11")
    • dbutils.fs.ls("dbfs:/Volumes/catalog1/schema1/volumn11")
    • spark.read.format("csv").option("header","True").load("/Volumes/catalog1/schema1/volumn11/123.csv")
    • spark.read.format("csv").option("header","True").load("dbfs:/Volumes/catalog1/schema1/volumn11/123.csv")
全用途计算集群详情
  • 类型:单节点
  • 访问模式:单用户
  • 单用户:本人
  • 运行时版本:14.3 LTS
  • 用户级数据访问凭据传递:禁用

排查与解决步骤

1. 补全存储凭据与外部位置权限

存储凭据和外部位置未配置权限是核心问题,需为你的用户分配必要权限:

-- 授予存储凭据的USE权限
GRANT USE ON STORAGE CREDENTIAL dbr_strg_cred_1 TO `你的用户名@域名.com`;

-- 授予外部位置的USE权限
GRANT USE ON EXTERNAL LOCATION dbr_ext_loc_catalog_default TO `你的用户名@域名.com`;
GRANT USE ON EXTERNAL LOCATION dbr_ext_loc_schema1 TO `你的用户名@域名.com`;

2. 配置托管卷权限

确保你对目标托管卷拥有访问权限:

GRANT SELECT, MODIFY ON VOLUME catalog1.schema1.volumn11 TO `你的用户名@域名.com`;

3. 刷新权限缓存

执行命令让权限变更立即生效:

REFRESH PRIVILEGES;

4. 验证访问路径格式

可尝试使用Unity Catalog标准命名格式访问托管卷:

dbutils.fs.ls("volumes/catalog1/schema1/volumn11")
spark.read.format("csv").option("header","True").load("volumes/catalog1/schema1/volumn11/123.csv")

5. 二次确认Azure RBAC配置

检查访问连接器access_connector_for_dbr_1的托管标识是否确实在ADLS Gen2存储账户adsl_gen2_1上拥有Storage Blob Data Contributor角色,且角色分配已生效(RBAC变更可能需要数分钟同步)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:26:13