管理管道的标识、权限和特权

标识、权限和特权控制谁可以运行、管理和查询管道及其生成的数据。

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 MANAGEIS OWNER 权限才能管理权限。 管道使用访问控制列表(ACL)来控制权限。 有关权限及其功能的完整列表,请参阅 Lakeflow 管道 ACL

  1. 在侧边栏中,单击作业和管道

  2. 选择管道 的名称

  3. 单击“共享”。 此时会显示 “权限设置” 对话框。

  4. 单击 “选择用户、组或服务主体...” ,然后选择用户、组或服务主体。

  5. 从“权限”下拉菜单中选择权限。

  6. 单击 添加

  7. 单击“ 保存”。

更改管道所有者

默认情况下,管道所有者也是管道更新操作所使用的“运行方式用户”。 更改所有者会更改用于将来更新的标识。

如果想在不更改所有者的情况下更改管道更新所使用的标识,请设置“运行方式用户”。 请参阅设置以用户身份运行

若要更改管道的所有者,必须同时是元存储管理员和工作区管理员。使用 UI 或 REST API 更改所有者。

使用用户界面(UI)

  1. 在侧边栏中,单击作业和管道
  2. 选择管道 的名称
  3. 单击“共享”。 此时会显示 “权限设置” 对话框。
  4. 清除当前所有者,然后选择新所有者。 所有者可以是用户或服务主体。 Databricks 建议使用服务主体。 请参阅 服务主体
  5. 单击“ 保存”。

使用 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"
  }
}