作业访问控制
请注意
访问控制仅在优质及以上计划.
启用访问控制工作允许作业所有者控制谁可以查看作业结果或管理作业的运行。本文描述了各个权限以及如何配置作业访问控制。
在使用作业访问控制之前,Databricks管理员必须为工作空间启用它。看到为您的工作空间启用作业访问控制.
工作权限
job有五种权限级别:没有权限,可以查看,能够管理运行,是老板,可以管理.管理员被授予可以管理默认权限,他们可以将该权限分配给非admin用户。
请注意
作业所有者只能由管理员更改。
该表列出了每个权限的能力。
能力 |
没有权限 |
可以查看 |
能够管理运行 |
是老板 |
可以管理 |
---|---|---|---|---|---|
查看作业详细信息和设置 |
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)可访问的现有集群上运行,具有能够管理运行权限可以开始作业的新运行。
,才能查看笔记本运行结果可以查看或者对工作有更高的权限。这允许作业访问控制不受影响,即使作业笔记本被重命名、移动或删除。
作业访问控制适用于Databricks Jobs UI中显示的作业及其运行。它不适用于:
由笔记本中的模块化或链接代码即使用笔记本的权限。如果从存储在Git中的笔记本创建一个笔记本工作流,则会创建一个新的签出,并且签出中的文件仅具有执行原始运行的用户的权限。
API提交的运行其acl默认是与笔记本绑定的。属性可以覆盖默认的acl
access_control_list
参数。
请注意
作业访问控制在Databricks于2017年9月发布的版本中引入。客户提供集群访问控制自动启用作业访问控制。
对于2017年9月之前存在的作业,作业访问控制将更改启用了集群访问控制的客户的行为。上的先前作业访问控制设置工作笔记本的访问控制作业运行结果.也就是说,如果用户可以查看作业笔记本,则可以查看作业运行结果。Databricks初始化作业访问控制设置,使其与以前的访问控制设置兼容,如下所示:
创造就业机会的人被授予是老板权限和管理员被授予可以管理许可。
Databricks授予可以查看作业笔记本的用户可以查看工作许可。这保留了对笔记本作业的视图访问控制。
可以查看权限适用于有关的所有历史运行笔记本的结果.但是,它不适用于作业访问控制可用之前由作业创建的集群。例如,假设一个作业已完成运行(比如运行1),该作业创建了集群C1并运行了笔记本N1。后来,作业设置为运行笔记本N2。用户提供可以查看cluster C1的Spark UI和driver日志不能查看。你可以使用集群访问控制来控制对C1的访问。
配置作业权限
请注意
介绍权限管理的操作步骤。你也可以使用权限API 2.0.
你一定有可以管理或是老板许可。
去细节寻呼找工作。
单击编辑权限按钮。工作细节面板。
在弹出对话框中,通过用户名旁边的下拉菜单分配作业权限。
点击保存更改.
起程拓殖集成
您可以在完全自动化的设置中使用Databricks Terraform提供商而且databricks_permissions:
资源"databricks_group" "auto" {display_name = "自动化"}资源"databricks_group" "eng" {display_name = "工程"}data "databricks_node_type" "latest" {} data "databricks_node_type" " minimal " {local_disk = true}资源"databricks_job" "this" {name = "特性化" max_concurrent_runs = 1 new_cluster {num_workers = 300 spark_version = data.databricks_spark_version.latest。Id node_type_id = data.databricks_node_type. least。id} notebook_task {notebook_path = "/Production/MakeFeatures"}} resource "databricks_permissions" "job_usage" {job_id = databricks_job.this. id} notebook_task {notebook_path = "/Production/MakeFeatures"}}id access_control {group_name = "users" permission_level = "CAN_VIEW"} access_control {group_name = databricks_group.auto. id access_control {group_name = "users" permission_level = "CAN_VIEW"display_name permission_level = "CAN_MANAGE_RUN"} access_control {group_name = databricks_group.eng. display_name permission_level = "CAN_MANAGE_RUN"}display_name permission_level = "CAN_MANAGE"}}