管理用户

本文介绍如何添加、更新和移除 Azure Databricks 用户。

有关 Azure Databricks 标识模型的概述,请参阅 Azure Databricks 标识

用户管理概述

若要管理 Azure Databricks 中的用户,你必须是帐户管理员或工作区管理员。

  • 帐户管理员可以将用户添加到帐户,并为其分配管理员角色。 他们还可以将用户分配到工作区,并跨工作区配置数据访问权限,前提是这些工作区使用联合身份验证

  • 工作区管理员可以将用户添加到 Azure Databricks 工作区,为他们分配工作区管理员角色,并管理对工作区中对象和功能的访问权限,例如创建群集或访问指定的基于角色的环境的权利。 将用户添加到 Azure Databricks 工作区也会将其添加到帐户中。

    工作区管理员是工作区中 admins的成员,该组是无法删除的保留组。

    在 Azure 中对工作区资源拥有内置“参与者”或“所有者”角色的用户在单击 Azure 门户中的“启动工作区”时会被系统自动分配工作区管理员角色。 有关详细信息,请参阅什么是工作区管理员?

重要

如果你的帐户是在 2023 年 11 月 9 日之后创建的,则联合身份验证将在所有新工作区上默认启用,并且无法禁用。

从 Microsoft Entra ID(以前称为 Azure Active Directory)租户将用户同步到 Azure Databricks 帐户

帐户管理员可以使用 SCIM 预配连接器,将用户从 Microsoft Entra ID(以前称为 Azure Active Directory)租户同步到 Azure Databricks 帐户。

重要

如果已有直接将标识同步到工作区的 SCIM 连接器,则必须在启用帐户级 SCIM 连接器时禁用这些 SCIM 连接器。 请参阅将工作区级 SCIM 预配迁移到帐户级别

管理帐户中的用户

帐户管理员可以使用帐户控制台将用户添加到 Azure Databricks 帐户。 Azure Databricks 帐户中的用户对工作区、数据或计算资源没有任何默认访问权限。

使用帐户控制台将用户添加到帐户

  1. 作为帐户管理员,登录到帐户控制台
  2. 在边栏中,单击“用户管理”。
  3. 在“用户”选项卡上,单击“添加用户”。
  4. 输入用户的名称和电子邮件地址。
  5. 单击“添加用户” 。

注意

用户不能属于 50 个以上的 Azure Databricks 帐户。

若要授予用户访问工作区的权限,必须将它们添加到工作区。 请参阅管理工作区中的用户

向用户分配帐户管理员角色

  1. 作为帐户管理员,登录到帐户控制台
  2. 在边栏中,单击“用户管理”。
  3. 查找并单击用户名。
  4. 在“角色”选项卡上,启用“帐户管理员”。

使用帐户控制台将用户分配到工作区

若要使用帐户控制台将用户添加到工作区,工作区必须启用联合身份验证。 工作区管理员还可以使用工作区管理员设置页将用户分配给工作区。 请参阅使用工作区管理员设置页将用户分配到工作区

  1. 作为帐户管理员,登录到帐户控制台
  2. 在边栏中单击“工作区”。
  3. 单击工作区名称。
  4. 在“权限”选项卡上,单击“添加权限”
  5. 搜索并选择用户,分配权限级别(工作区“用户”或“管理员”),然后单击“保存”。

使用帐户控制台从工作区中移除用户

若要使用帐户控制台从工作区中移除用户,工作区必须启用联合身份验证。 当用户被从工作区中移除后,该用户将无法再访问该工作区,但用户上的权限仍会保留。 如果以后将用户添加回工作区,则他们会重新获得其以前的权限。

  1. 作为帐户管理员,登录到帐户控制台
  2. 在边栏中单击“工作区”。
  3. 单击工作区名称。
  4. 在“权限”选项卡上,找到用户。
  5. 单击用户行最右侧的 Kebab 菜单“Kebab 菜单”,然后选择“移除”。
  6. 在确认对话框中,单击“删除”。

停用 Azure Databricks 帐户中的用户

帐户管理员可以在 Azure Databricks 帐户中停用用户。 停用的用户无法登录到 Azure Databricks 帐户或工作区。 但是,用户的所有权限和工作区对象保持不变。 停用用户后,会出现以下情况:

  • 用户无法通过任何方法登录到帐户或任何工作区。
  • 使用用户生成的令牌的应用程序或脚本无法再访问 Databricks API。 令牌将保留,但不能用于在用户停用时进行身份验证。
  • 用户拥有的笔记本会保留。
  • 用户拥有的群集保留运行状态。
  • 由用户创建的计划作业必须分配给新的所有者,以防止它们失败。

重新激活用户时,它们可以使用相同的权限登录到 Azure Databricks。 Databricks 建议在帐户中停用用户而不是移除它们,因为移除用户是一项破坏性操作。

无法使用帐户控制台停用用户。 请改为使用帐户用户 API。 请参阅使用 API 停用 Azure Databricks 帐户中的用户

从 Azure Databricks 帐户中移除用户

帐户管理员可以从 Azure Databricks 帐户中删除用户。 工作区管理员不可以。 从帐户中删除用户时,该用户也会从其工作区中移除。

重要

从帐户中删除用户时,也会将该用户从其工作区中删除,而不管是否启用了联合身份验证。 建议不要删除帐户级别用户,除非你希望他们失去对帐户中所有工作区的访问权限。 请注意删除用户会产生以下后果:

  • 使用用户生成的令牌的应用程序或脚本无法再访问 Databricks API
  • 用户拥有的作业失败
  • 用户拥有的群集停止
  • 用户创建并使用“以所有者身份运行”凭据共享的查询或仪表板必须分配给新所有者,以防共享失败

当用户被从帐户中移除后,该用户将无法再访问该帐户,但用户上的权限仍会保留。 如果以后将用户添加回帐户,则他们会重新获得其以前的权限。

若要使用帐户控制台移除用户,请执行以下操作:

  1. 作为帐户管理员,登录到帐户控制台。
  2. 在边栏中,单击“用户管理”。
  3. 查找并单击用户名。
  4. 在“用户信息”选项卡上,单击右上角的 Kebab 菜单 kebab 菜单,然后选择“删除”。
  5. 在确认对话框中,单击“确认删除”。

如果使用帐户控制台移除用户,则还必须确保使用为帐户设置的任何 SCIM 预配连接器或 SCIM API 应用程序移除该用户。 如果你没有这样做,SCIM 预配会在下次同步时将用户添加回来。 请参阅从 Microsoft Entra ID 同步用户和组

若要使用 SCIM API 从 Azure Databricks 帐户中移除用户,你必须是帐户管理员。请参阅将标识预配到 Azure Databricks 帐户帐户组 API

管理工作区中的用户

工作区管理员可以使用工作区管理员设置页添加和管理用户。

使用工作区管理员设置页将用户分配到工作区

若要使用工作区管理员设置页将用户添加到工作区,请执行以下操作:

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。

  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“管理员设置”。

  3. 单击“标识和访问”选项卡。

  4. 在“用户”旁单击“管理”。

  5. 单击“添加用户” 。

  6. 选择要分配到工作区的现有组,或单击“新添”创建新用户。

    可以添加属于 Azure Databricks 工作区的 Microsoft Entra ID(以前称为 Azure Active Directory)租户的任何用户。

  7. 单击“添加”。

注意

如果未为工作区启用联合身份验证,则只会看到将新用户添加到工作区的选项。 如果添加与现有账户用户一样的用户名(电子邮件地址),这些用户会合并。

使用工作区管理员设置页将工作区管理员角色分配给用户

若要使用工作区管理员设置页分配工作区管理员角色,请执行以下操作:

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。
  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“管理员设置”。
  3. 单击“标识和访问”选项卡。
  4. 在“用户”旁单击“管理”。
  5. 选择用户。
  6. 单击“权利”选项卡。
  7. 单击“管理员访问权限”旁边的开关。

若要从工作区用户中移除工作区管理员角色,请执行以下步骤,但取消选择“管理员访问权限”开关。

为用户分配权利

权利是允许用户、服务主体或组以指定方式与 Azure Databricks 交互的属性。 权利是在工作区级别分配给用户的。 下表列出了权利以及用于管理每个权利的工作区 UI 和 API 属性名称。 你可以使用工作区管理员设置页和工作区级 SCIM REST API 来管理权利。

权利名称 权利 API 名称 默认值 说明
工作区访问权限 workspace-access 默认授予。 向用户或服务主体授予权限后,他们可以访问数据科学与工程以及 Databricks 机器学习基于角色的环境。

不能从工作区管理员中移除。
Databricks SQL 访问权限 databricks-sql-access 默认授予。 向用户或服务主体授予后,该用户或服务主体即可访问 Databricks SQL。
允许创建无限制的群集 allow-cluster-create 默认不向用户或服务主体授予。 向用户或服务主体授权后,该用户或服务主体即可创建非受限群集。 你可以使用群集级权限限制对现有群集的访问。

不能从工作区管理员中移除。
允许创建池(不能通过 UI) allow-instance-pool-create 不能授予个人用户或服务主体。 向组授予后,该组成员即可创建实例池。

不能从工作区管理员中移除。

默认情况下,系统会向users组授予“工作区访问权限”和“Databricks SQL 访问权限”权利。 所有工作区用户和服务主体都是users组的成员。 若要按用户逐个分配这些权利,工作区管理员需要从users组中移除权限,并将权限单独分配给用户、服务主体和组。

重要

若要登录并访问 Azure Databricks 工作区,用户必须具有“Databricks SQL 访问权限”或“工作区访问权限”权利

不能使用管理员设置页授予allow-instance-pool-create权利。 请改用工作区用户、服务主体或组 API。

使用工作区管理员设置页添加或删除用户的权利

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。
  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“管理员设置”。
  3. 单击“标识和访问”选项卡。
  4. 在“用户”旁单击“管理”。
  5. 选择用户。
  6. 单击“权利”选项卡。
  7. 若要添加权利,请选择相应列中的切换开关。

若要移除权利,请执行相同的步骤,但改为取消选择切换开关。

注意

工作区管理员不是一项权利。 “管理员访问权限”切换开关是一种将用户添加到 admins 组的便捷方式。

如果一个权利继承自组,则权利切换开关会处于选中状态,但灰显。若要删除继承的权利,可以从拥有权利的组中删除用户,或从组中删除权利。

在 Azure Databricks 工作区中停用用户

工作区管理员可以停用 Azure Databricks 工作区中的用户。 已停用的用户无法登录到工作区或从 Azure Databricks API 访问工作区,但用户的所有权限和工作区对象保持不变。 停用用户时:

  • 用户无法从任何方法登录到工作区。
  • 用户的状态在工作区管理员设置页面中显示为“非活动”
  • 使用用户生成的令牌的应用程序或脚本无法再访问 Databricks API。 令牌将保留,但不能用于在用户停用时进行身份验证。
  • 用户拥有的笔记本会保留。
  • 用户拥有的群集保留运行状态。
  • 由用户创建的计划作业必须分配给新的所有者,以防止它们失败。

重新激活用户时,它们可以使用相同的权限登录到工作区。 Databricks 建议停用用户而不是移除他们,因为移除用户是一项破坏性操作。 不能使用工作区管理员设置页停用用户。 请改用工作区用户 API。 请参阅使用 API 停用 Azure Databricks 工作区中的用户

使用工作区管理员设置页从工作区中删除用户

当用户被从工作区中移除后,该用户将无法再访问该工作区,但用户上的权限仍会保留。 如果以后将用户添加回工作区,则他们会重新获得其以前的权限。

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。
  2. 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“管理员设置”。
  3. 单击“标识和访问”选项卡。
  4. 在“用户”旁单击“管理”。
  5. 找到相应用户以及用户行最右侧的 Kebab 菜单 串形菜单,然后选择“移除”
  6. 单击“删除”进行确认。

使用 API 管理用户

帐户管理员和工作区管理员可以使用 Databricks API 管理 Azure Databricks 帐户和工作区中的用户。

使用 API 管理帐户中的用户

管理员可以使用帐户用户 API 在 Azure Databricks 帐户中添加和管理用户。 帐户管理员和工作区管理员使用不同的终结点 URL 调用 API:

  • 帐户管理员使用 {account-domain}/api/2.0/accounts/{account_id}/scim/v2/
  • 工作区管理员使用 {workspace-domain}/api/2.0/account/scim/v2/

有关详细信息,请参阅帐户用户 API

使用 API 停用 Azure Databricks 帐户中的用户

帐户管理员可以使用帐户用户 API 更改用户状态以停用用户。 例如:

curl --netrc -X PATCH \
https://${DATABRICKS_HOST}/api/2.0/accounts/{account_id}/scim/v2/Users/{id} \
--header 'Content-type: application/scim+json' \
--data @update-user.json \
| jq .

update-user.json

{
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      "op": "replace",
      "path": "active",
      "value": [
        {
          "value": "false"
        }
      ]
    }
  ]
}

已停用的用户的状态在帐户控制台中标记为“非活动”。

从帐户停用某个用户时,该用户也会从其工作区停用。

使用 API 管理工作区中的用户

帐户和工作区管理员可以使用工作区分配 API 将用户分配到已启用联合身份验证的工作区。 通过 Azure Databricks 帐户和工作区支持工作区分配 API。

  • 帐户管理员使用 {account-domain}/api/2.0/accounts/{account_id}/workspaces/{workspace_id}/permissionassignments
  • 工作区管理员使用 {workspace-domain}/api/2.0/preview/permissionassignments/principals/{user_id}

请参阅工作区分配 API

如果工作区未启用联合身份验证,则工作区管理员可以使用工作区级 API 将用户分配到其工作区。 请参阅工作区用户 API

使用 API 停用 Azure Databricks 工作区中的用户

工作区管理员可以使用工作区用户 API 更改用户状态以停用用户。 例如:

curl --netrc -X PATCH \
https://<databricks-instance>/api/2.0/preview/scim/v2/Users/<user-id> \
--header 'Content-type: application/scim+json' \
--data @update-user.json \
| jq .

update-user.json

{
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      "op": "replace",
      "path": "active",
      "value": [
        {
          "value": "false"
        }
      ]
    }
  ]
}

已停用用户的状态在工作区管理员设置页中标记为“非活动”。