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

使用服务主体通过REST API运行Azure Databricks笔记本遇权限拒绝错误

问题排查:Azure Databricks REST API作业权限及笔记本访问问题

报错信息汇总

  1. Postman调用jobs/run-now时的权限错误:
{
    "error_code": "PERMISSION_DENIED",
    "message": "User 'my-spn' does not have Manage Run or Owner or Admin permissions on job 246372968680205"
}
  1. Python脚本运行作业时的笔记本访问错误:
"error":"run failed with error message\n Unable to access the notebook \"/Repos/test\". Either it does not exist, or the identity used to run this job, Databricks-POC, lacks the required permissions."

针对作业权限错误的排查步骤

  • 确认作业所有者身份:调用jobs/get API查看作业的owner_user_name字段,确认是否为你的服务主体(SPN)(格式通常为application-<client-id>@<tenant-id>.onmicrosoft.com)。默认创建作业的用户即为所有者,但如果Workspace有RBAC限制,需验证该身份是否保留所有者权限。
  • 检查作业权限配置:调用jobs/get-permissions API获取作业的权限列表,确认SPN是否被授予CAN_MANAGE_RUN、OWNER或ADMIN权限。若权限缺失,使用jobs/update-permissions API添加对应权限,示例Payload:
{
  "access_control_list": [
    {
      "user_name": "your-spn-identity",
      "permission_level": "CAN_MANAGE_RUN"
    }
  ]
}
  • 验证RBAC角色分配:若Workspace启用了RBAC,确保SPN被分配Job Manager或Admin角色,这类角色包含作业运行管理的核心权限。

针对笔记本访问错误的排查步骤

  • 确认笔记本路径准确性:在Databricks UI中打开目标笔记本,复制其完整路径(注意个人Repos路径通常为/Repos/<spn-identity>/test,而非/Workspace/Repos/test),核对API请求中的notebook_path是否完全匹配。
  • 检查笔记本权限设置:调用workspace/get-permissions API查看目标路径的权限配置,确保SPN拥有至少CAN_RUN权限。若使用UI操作,可直接在笔记本的“权限”设置中添加SPN并分配对应权限。
  • 确认作业运行身份:检查作业配置中是否设置了run_as_user字段。若设置了该字段,需验证指定身份(报错中的Databricks-POC)是否拥有笔记本访问权限;若未设置,作业默认以创建者(SPN)身份运行,需确保SPN的权限配置正确。

通用排查点

  • SPN令牌权限验证:确认生成Bearer令牌时使用的scope包含https://databricks.azure.com/.default,确保令牌拥有Jobs、Workspace相关的读写权限。
  • 集群权限检查:验证SPN对指定的existing_cluster_id拥有CAN_ATTACH_TO权限,作业需该权限才能在集群上启动任务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:05:16