作业访问控制

注意

访问控制仅在高级计划中提供。

作业启用访问控制可以使作业所有者控制哪些用户可以查看作业结果或管理作业的运行。 本文介绍各个权限以及配置作业访问控制的方式。

Azure Databricks 管理员必须先为工作区启用作业访问控制,然后你才能使用表访问控制。 请参阅为工作区启用作业访问控制

作业权限

有五个作业权限级别:无权限、可以查看、可以管理运行、是所有者、可以管理 。 默认情况下,会向管理员授予“可以管理”权限,并且他们可将该权限分配给非管理员用户。

注意

只有管理员可以更改作业所有者。

该表列出了每个权限赋予用户的能力。

能力 无权限 可以查看 可以管理运行 为所有者 可管理
查看作业详细信息及设置 x x x x x
查看结果、Spark UI、作业运行日志 x x x x
立即运行 x x x
取消运行 x x x
编辑作业设置 x x
修改权限 x x
删除作业 x x
更改所有者

注意

  • 作业的创建者拥有“是所有者”权限。
  • 一个作业不能有多个所有者。
  • 作业不能将组作为所有者。
  • 通过“立即运行”触发的作业会获得作业所有者的权限,而不是发出“立即运行”的用户的权限 。 例如,即使将作业 A 配置为只能在作业所有者(用户 A)访问的现有群集上运行,具有“可以管理运行”权限的用户(用户 B)也可以启动该作业的新运行。
  • 仅当你在作业上有“可以查看”或更高的权限时,才能查看笔记本运行结果。 即使已重命名、移动或删除作业笔记本,此操作也可以使作业访问控制保持不变。
  • 作业访问控制适用于在 Databricks 作业 UI 中显示及运行的作业。 它不适用于笔记本中模块化或链接的代码生成的运行或 API 提交的运行,这些运行的 ACL 与笔记本捆绑在一起。

配置作业权限

注意

此部分介绍如何使用 UI 来管理权限。 你还可以使用权限 API 2.0

你必须具有“可以管理”或“是所有者”权限 。

  1. 转到作业的详细信息页。

  2. 在“作业详细信息”面板中单击“编辑权限”按钮。

  3. 在弹出对话框中,通过用户名旁边的下拉菜单分配作业权限。

    Assign job permissions

  4. 单击 “保存更改”

Terraform 集成

你可以使用 Databricks Terraform 提供程序databricks_permissions 在全自动设置中管理权限:

resource "databricks_group" "auto" {
  display_name = "Automation"
}

resource "databricks_group" "eng" {
  display_name = "Engineering"
}

data "databricks_spark_version" "latest" {}

data "databricks_node_type" "smallest" {
  local_disk = true
}

resource "databricks_job" "this" {
  name                = "Featurization"
  max_concurrent_runs = 1

  new_cluster {
    num_workers   = 300
    spark_version = data.databricks_spark_version.latest.id
    node_type_id  = data.databricks_node_type.smallest.id
  }

  notebook_task {
    notebook_path = "/Production/MakeFeatures"
  }
}

resource "databricks_permissions" "job_usage" {
  job_id = databricks_job.this.id

  access_control {
    group_name       = "users"
    permission_level = "CAN_VIEW"
  }

  access_control {
    group_name       = databricks_group.auto.display_name
    permission_level = "CAN_MANAGE_RUN"
  }

  access_control {
    group_name       = databricks_group.eng.display_name
    permission_level = "CAN_MANAGE"
  }
}