管理访问请求

重要

此功能目前以公共预览版提供。

“请求访问”功能允许用户请求 Unity 目录中安全对象的特权。 本页介绍如何将访问请求目标配置为管理员。 这些目标确定当用户请求访问数据对象时发送访问请求的位置。

什么是访问请求目标?

当用户请求访问 Unity 目录中的对象(例如表或视图)时,请求将发送到一个或多个配置的目标。 目标可以是以下任一项:

  • 电子邮件地址

  • Microsoft Teams 频道

  • Webhook 端点

  • 重定向 URL(指向您的组织的外部访问请求系统)

    每个对象只能配置一个重定向 URL。 如果设置了 URL,则无法设置其他目标,用户将被重定向到该 URL,而不是看到产品内请求表单。

直接在 Azure Databricks 工作界面中请求权限

配置目标后,用户可以通过产品内的多个入口请求权限:目录浏览器、SQL 编辑器和笔记本,以及 AI/BI 仪表板。

目录浏览器

具有 BROWSE 权限的用户可以导航目录树、打开对象的页面,并从那里请求其他特权(例如 SELECT)。 用户还可以将直接 URL 发送到对象的页面,并请求从同一图面进行访问,即使没有 BROWSE

带有“请求访问”入口的目录浏览器对象页。

SQL 编辑器、笔记本和其他创作界面

当查询或命令失败并出现 INSUFFICIENT_PERMISSIONS 错误时,错误消息包含一个请求 访问 选项,该选项使用引用的表预先填充请求。 这在出现该错误的任何位置都适用,包括 SQL 编辑器和笔记本。

SQL 查询失败,出现 INSUFFICIENT_PERMISSIONS 错误,并显示“请求访问”选项。

人工智能/商业智能仪表板

当仪表板在未使用嵌入式凭据的情况下运行,且某个小组件引用了查看者无权读取的数据集时,该小组件会针对这些缺失的数据集显示一个请求访问模态框。

AI/BI 仪表板小组件,提示查看者请求访问缺失的数据集。

访问请求目标的工作原理

可以在 Unity 目录中的大多数对象上配置访问请求目标,包括元存储、目录、架构、表、视图、卷、函数、模型、存储凭据、服务凭据、外部位置和连接。

提交请求时,用户可以请求一个或多个主体的访问权限。 这包括自身、服务主体、其他用户或组。 请求被路由到已配置的目标。

如果配置了多个目标,则会将请求发送到所有这些目标。 如果未配置目标,则用户无法请求访问对象。 默认情况下,对象没有配置的目标。 但是,作为元存储管理员和工作区管理员,即使未显式配置目标,也可以 启用默认电子邮件目标 ,以将访问请求传递到相应的所有者。

如果配置了重定向 URL,则用户将转到该 URL,并且看不到访问请求表单。 工作区管理员可以按照 “管理通知目标”中的说明配置外部目标。

目标继承行为

在 Unity 目录对象层次结构的较高级别配置目标时,它还适用于尚未具有目标的所有子对象。 例如,如果在目录中配置目标,则目录下的所有架构和对象都继承此目标,但已具有目标的架构和对象除外。

访问请求目标继承示例

启用默认电子邮件目标

Databricks 建议启用默认电子邮件目标。 这可确保即使未手动配置目标,也会传递访问请求。 启用后,目录对象的请求将发送到目录所有者的电子邮件地址,并向对象所有者的电子邮件地址发送对目录外部对象(如外部位置)的请求。

小窍门

启用默认电子邮件目标可确保即使未为对象手动配置任何目标,也会传递访问请求。 这是开始接收并响应您的 Unity Catalog 元存储中的请求的最快方式。

若要启用默认目标,必须同时是元存储管理员和工作区管理员。

  1. 在工作区右上角,单击个人资料照片,然后选择“设置”。

  2. 单击“ 通知”。

  3. UC 中启用访问请求的默认电子邮件目标

在对象上配置访问请求目标

若要在对象上配置访问请求目标,你必须是对象所有者、对对象拥有 MANAGE 权限或元存储管理员。

可以使用目录资源管理器、REST API 或 Terraform 配置目标。

为现有对象配置目标

目录浏览器

  1. 在 Azure Databricks 工作区中,单击 “数据”图标。目录

  2. 选择安全对象。

  3. 单击 “Kebab”菜单图标。kebab 菜单并选择“ 管理访问请求目标”。

  4. 选择一个或多个电子邮件或外部目标,或配置重定向 URL。

    如果选择 URL,则无法添加其他目标类型。

    配置访问请求目标。

  5. 单击“更新” 。

REST API

使用 访问请求目标 API 在安全对象上设置目标。 PATCH 替换可保护对象上的目标;如果之前未设置任何目标,则会创建这些目标。

curl -X PATCH \
  https://<workspace-url>/api/3.0/rfa/destinations \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "destinations": [
      { "destination_id": "data-access@example.com", "destination_type": "EMAIL" }
    ],
    "securable": {
      "type": "TABLE",
      "full_name": "main.sales.orders"
    }
  }'

Terraform

使用databricks_rfa_access_request_destinations资源。

resource "databricks_rfa_access_request_destinations" "orders" {
  destinations = [
    {
      destination_id   = "data-access@example.com"
      destination_type = "EMAIL"
    }
  ]
  securable = {
    type      = "TABLE"
    full_name = "main.sales.orders"
  }
}

创建目录时配置目标

  1. 在 Azure Databricks 工作区中,单击 “数据”图标。目录
  2. 单击 加号图标。 加号图标。 然后单击“ 创建目录”。
  3. 输入目录的名称,然后单击“ 创建目录”。
  4. 在下一个模式中,单击“ 配置目录”。
  5. “访问请求 ”部分下,根据需要添加、修改或删除目标。 默认情况下,目录所有者的电子邮件作为目标包含在内。

为新目录配置访问请求目标。

  1. 单击“ 下一步”,然后单击“ 保存”。

目标对象在 Unity Catalog 对象层次结构中继承。 在具有访问请求目标的目录中创建架构时, “创建新架构 模式”提到继承的目标:

新架构模式中列出的访问请求目标

若要修改架构上的这些目标,请参阅 为现有对象配置目标

访问请求示例

以下部分显示了发送到不同目标的访问请求的示例。

Email

访问请求电子邮件由 noreply@databricks.com 发送。

请求访问电子邮件目标。

Webhook (JSON)

{
  "requesterName": "<first-name> <last-name> (<email>)",
  "objectName": "<catalog>.<schema>.<table>",
  "objectType": "Table",
  "privileges": "SELECT",
  "principalName": "<group-name>",
  "onBehalfOf": "<group-name>",
  "onBehalfOfType": "Group",
  "comment": "My team needs access to run queries on this table.",
  "databricksWorkspaceUrl": "https:/<account>.databricks.com/explore/data/<catalog>/<schema>/<table>?o=<table-id>&activeTab=permissions&showGrantModal=true&requestedPrivileges=SELECT&groupId=<group-id>"
}

有关如何将 Webhook 与常用工具集成的信息,请参阅以下内容:

内置权限验证

  • 当用户请求类似权限USE CATALOG时,系统会自动检查先决条件权限(USE SCHEMASELECT) 。
  • 缺少前置条件时,会生成额外请求,并将其路由给父对象的审批人。
  • 验证也适用于代表另一个用户或组提交的请求。

批准访问请求

若要批准访问请求,请按照发送到访问请求通知的链接进行作。 该链接会在工作区中打开一个模式对话框,其中显示请求者、对象和请求的权限。

查看访问请求。

接下来,选择以下审批方法之一:

  • 向组添加主体 ,将请求者添加到至少具有一个请求权限的一个或多个现有组。

    使用组授予访问请求。

  • 向主体授予权限 ,使其直接访问对象。 还可以选择特权预设,例如 数据读取器 来向用户授予权限集合。

    使用特权批准访问请求。

有关每个访问请求和目标配置的记录,请参阅审核日志参考中的 访问事件请求