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

如何为Azure Data Factory作业集群授予Databricks Unity Catalog表访问权限?

解决方案:为ADF触发的Databricks作业集群配置Unity Catalog权限

要解决ADF调用Databricks作业集群访问Unity Catalog(UC)表失败的问题,核心是为作业集群的运行身份授予对应的UC权限,具体步骤如下:

1. 明确作业集群的运行身份

ADF触发的Databricks作业,其运行身份由ADF链接服务的认证方式决定:

  • 若链接服务使用服务主体认证:作业将以该Azure AD服务主体的身份在Databricks中运行
  • 若使用个人访问令牌:作业将以令牌所属的Databricks用户/服务主体身份运行

你可以在Notebook中添加以下代码,验证当前作业的运行身份:

print(dbutils.notebook.entry_point.getDbutils().notebook().getContext().userName().get())

2. 为运行身份授予UC权限

在Databricks的SQL编辑器中,针对该身份执行权限授予命令,确保它能访问目标UC资源:

  • 授予目录的使用权限:
    GRANT USAGE ON CATALOG <你的UC目录名> TO <运行身份名>;
    
  • 授予Schema的使用权限:
    GRANT USAGE ON SCHEMA <你的UC目录名>.<你的Schema名> TO <运行身份名>;
    
  • 授予源表的读取权限:
    GRANT SELECT ON TABLE <你的UC目录名>.<你的Schema名>.<源表名> TO <运行身份名>;
    
  • 授予目标表的读写权限:
    GRANT SELECT, INSERT ON TABLE <你的UC目录名>.<你的Schema名>.<目标表名> TO <运行身份名>;
    

注意:若运行身份是Azure AD服务主体,在Databricks中需要先将该服务主体添加为工作区用户或服务主体,才能为其分配UC权限。

3. 配置ADF链接服务的正确身份

确保ADF链接服务使用的认证身份(服务主体/访问令牌)是你已授予UC权限的那个身份,无需在链接服务的作业集群参数中额外配置权限——权限是直接绑定到运行身份上的,而非集群本身。

4. 验证作业集群运行

重新触发ADF管道,作业集群将以具备UC权限的身份运行,即可正常读取和写入UC表。


不推荐在生产环境使用固定交互式集群的原因:

  • 交互式集群长期运行会造成资源浪费
  • 多管道复用同一集群可能引发资源竞争和并发问题
  • 集群的维护(如版本升级、重启)会影响所有依赖的管道

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:02:22