Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍如何在 Databricks 资产捆绑包中设置资源的权限。 有关捆绑包中支持的资源的信息,请参阅 Databricks 资产捆绑包资源。
在 Azure Databricks 捆绑配置文件中,可以在顶层定义权限以应用于捆绑包中定义的所有资源,也可以定义应用于特定资源的权限。
注意
权限不能重叠。 换句话说,不能在顶级 permissions
映射和 resources
映射中定义用户、组或服务主体的权限。
定义应用于所有资源的权限
可以定义权限,以应用于使用顶级resources
映射定义permissions
的所有受支持的资源。 Databricks 建议使用此方法以管理 Databricks 资产捆绑资源权限。
权限定义允许的权限 user_name
级别, group_name
或 service_principal_name
。 允许的顶级权限级别是 CAN_VIEW
、CAN_MANAGE
和 CAN_RUN
。 有关顶级 permissions
映射的详细信息,请参阅 权限。
以下示例设置目标的 dev
顶级权限。 用户 someone@example.com
将拥有 CAN_RUN
以下 my-job
权限:
bundle:
name: my-bundle
resources:
jobs:
my-job:
# ...
targets:
dev:
# ...
permissions:
- user_name: someone@example.com
level: CAN_RUN
定义特定资源的权限
可以使用 permissions
仪表板、试验、作业、模型或管道定义中的 resources
映射来定义该资源的一个或多个权限。
映射中的每个 permissions
权限都必须包括以下内容:
-
user_name
group_name
service_principal_name
或分别设置为用户、组或服务主体的名称。 -
level
,设置为权限级别的名称。 每个资源允许的权限级别如下:
重要
资源允许的权限级别不一定应用于使用顶级 permissions
映射的资源。 有关顶级 permissions
映射的有效权限级别,请参阅 权限。
以下语法演示如何在顶级 resources
映射和目标中的映射中 resources
声明资源类型(在此示例中为管道)的权限:
# ...
resources:
pipelines:
<some-programmatic-identifier-for-this-pipeline>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name-1> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
targets:
<some-programmatic-identifier-for-this-target>:
resources:
pipelines:
<some-programmatic-identifier-for-this-pipeline>:
# ...
permissions:
- user_name: <user-name> # Or:
group_name: <group-name> # Or:
service_principal_name: <service-principal-name>
level: <permission-level>
# ...
# ...
为顶级 resources
映射中的资源声明的任何权限将与为单个目标中相同 resources
映射声明的任何权限相结合。 例如,在顶层和目标中为同一资源提供以下 resources
映射:
bundle:
name: my-bundle
resources:
jobs:
my-job:
# ...
permissions:
- group_name: test-group
level: CAN_VIEW
# ...
targets:
dev:
# ...
resources:
jobs:
my-job:
# ...
permissions:
- user_name: someone@example.com
level: CAN_MANAGE_RUN
# ...
为此示例运行 databricks bundle validate
时,生成的图形如下所示:
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"permissions": [
{
"level": "CAN_VIEW",
"group_name": "test-group"
},
{
"level": "CAN_MANAGE_RUN",
"user_name": "someone@example.com"
}
],
"...": "..."
}
}
}
}
权限优先顺序
如果您在捆绑配置中的多个位置定义了 permissions
,则授予捆绑包中指定的资源、工作区目录和文件的权限将按以下顺序排列:
例如,在以下配置中,组 test-group
将在 CAN_MANAGE
目标中具有作业的 dev
权限,但在 CAN_MANAGE_RUN
目标中具有作业的 prod
权限:
bundle:
name: my-bundle
permissions:
- group_name: test-group
level: CAN_VIEW
resources:
jobs:
my-job:
# ...
permissions:
- group_name: test-group
level: CAN_MANAGE_RUN
# ...
targets:
dev:
# ...
resources:
jobs:
my-job:
# ...
permissions:
- group_name: test-group
level: CAN_MANAGE
# ...
prod:
# ...
resources:
jobs:
my-job:
# ...