标识、权限和特权控制谁可以运行、管理和查询管道及其生成的数据。
Databricks 建议对所有新管道使用 Unity Catalog。 默认情况下,由配置了 Unity Catalog 的管道创建的具体化视图和流式处理表只能由管道所有者查询。 请参阅 将 Unity Catalog 与管道结合使用。
如果您的管道将数据集发布到旧版 Hive 元存储,请参阅 将 Lakeflow 管道与旧版 Hive 元存储配合使用。
有关标识配置的一般最佳做法,请参阅 标识最佳做法。
哪种身份用于管道更新?
管道以 run-as 用户的身份处理更新。 默认情况下,管道创建者会作为运行用户,但你可以将运行用户更改为其他用户或服务主体。 请参阅设置以用户身份运行。
Databricks 建议将“运行身份”用户设置为服务主体,以便管道更新不会依赖于某个个人用户的账户。 请参阅 服务主体。
谁可以执行管道更新?
管道更新可由具有 CAN RUN、CAN MANAGE 或 IS OWNER 权限的任何用户或服务主体运行。
谁可以查看管道及其输出?
若要打开管道并查看其详细信息,用户至少需要具有该管道的 CAN VIEW 权限。 有关管道权限级别的完整列表以及各级别授予的权限,请参阅 Lakeflow 管道 ACL。
若要查看支撑流式表或物化视图的管道,非管理员用户除了对该管道拥有相应权限外,还需要对该流式表或物化视图具有 REFRESH 权限。
REFRESH如果没有权限,管道 URL 会显示管道不可用。
配置管道权限
你必须在管道上拥有 CAN MANAGE 和 IS OWNER 权限才能管理权限。 管道使用访问控制列表(ACL)来控制权限。 有关权限及其功能的完整列表,请参阅 Lakeflow 管道 ACL。
在侧边栏中,单击作业和管道。
选择管道 的名称 。
单击“共享”。 此时会显示 “权限设置” 对话框。
单击 “选择用户、组或服务主体...” ,然后选择用户、组或服务主体。
从“权限”下拉菜单中选择权限。
单击 添加。
单击“ 保存”。
更改管道所有者
默认情况下,管道所有者也是管道更新操作所使用的“运行方式用户”。 更改所有者会更改用于将来更新的标识。
如果想在不更改所有者的情况下更改管道更新所使用的标识,请设置“运行方式用户”。 请参阅设置以用户身份运行。
若要更改管道的所有者,必须同时是元存储管理员和工作区管理员。使用 UI 或 REST API 更改所有者。
使用用户界面(UI)
- 在侧边栏中,单击作业和管道。
- 选择管道 的名称 。
- 单击“共享”。 此时会显示 “权限设置” 对话框。
- 清除当前所有者,然后选择新所有者。 所有者可以是用户或服务主体。 Databricks 建议使用服务主体。 请参阅 服务主体。
- 单击“ 保存”。
使用 REST API
如果 UI 中的所有者控件不可用,例如对于某些内部管理的管道,请使用 “设置管道权限 REST API”操作更改所有者。 使用具有 user_name 权限级别的 service_principal_name(对于服务主体,则使用 IS_OWNER)指定新所有者:
{
"access_control_list": [
{
"user_name": "new.owner@example.com",
"permission_level": "IS_OWNER"
}
]
}
如果没有用户同时是元存储管理员和工作区管理员
如果组织中的任何人都不是元存储管理员和工作区管理员,请联系 Databricks 代表以更改管道所有者。
允许非管理员用户从已启用 Unity 目录的管道查看驱动程序日志
默认情况下,只有管道所有者和工作区管理员可以从运行启用了 Unity 目录的管道的群集中查看驱动程序日志。 可以通过将以下 Spark 配置参数添加到管道设置中的对象,为具有 configuration的任何用户启用对驱动程序日志的访问权限:
{
"configuration": {
"spark.databricks.acl.needAdminPermissionToViewLogs": "false"
}
}