管理群组

本页介绍如何管理 Azure Databricks 帐户和工作区的组。

有关组的概述,请参阅 “组”。

将用户组从 Microsoft Entra ID 租户同步到 Azure Databricks 帐户

可以自动或使用 SCIM 预配连接器,将组从 Microsoft Entra ID 租户同步到 Azure Databricks 帐户。

自动标识管理(公共预览版) 使你可以将用户、服务主体和组从 Microsoft Entra ID 添加到 Azure Databricks 中,而无需在 Microsoft Entra ID 中配置应用程序。 Databricks 使用 Microsoft Entra ID 作为记录源,因此在 Azure Databricks 中尊重对用户或组成员身份所做的任何更改。 此预览版支持嵌套组。 有关详细信息,请参阅 从 Microsoft Entra ID 自动同步用户和组

SCIM 预配 使你可以在 Microsoft Entra ID 中配置企业应用程序,使用户和组与 Microsoft Entra ID 保持同步。 SCIM 预配不支持嵌套组。 有关说明,请参阅 使用 SCIM 从 Microsoft Entra ID 同步用户和组

将用户组添加到帐户

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页将组添加到 Azure Databricks 帐户。

帐户控制台

  1. 作为帐户管理员,登录到帐户控制台。

  2. 在边栏中,单击“用户管理”。

  3. 在“组”选项卡上,单击“添加组”。

  4. 输入组的名称。

  5. 单击“确认”。

  6. 出现提示时,将用户、服务主体和组添加到该组。

工作区管理员设置

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

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

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

  4. 旁边,单击管理

  5. 单击“添加组”。

  6. 单击“新增” 。

  7. 输入组的名称。

  8. 单击 添加

将成员添加到组

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页将组添加到 Azure Databricks 帐户。 非工作区管理员的组管理员必须使用帐户组 API 管理组成员身份。

帐户控制台

  1. 作为帐户管理员,登录到帐户控制台。

  2. 在边栏中,单击“用户管理”。

  3. 在“组”选项卡上,选择要更新的组。

  4. 单击“添加成员”。

  5. 搜索要添加的用户、组或服务主体,并选择它。

  6. 单击 添加

在从帐户更新组到在工作区中更新组之间存在几分钟的延迟。

工作区管理员设置

注释

不能向 admins 组添加子组。 你无法将工作区本地组或系统组添加为帐户组的成员。

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

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

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

  4. 旁边,单击管理

  5. 选择要更新的组。 必须具有组管理员角色才能更新组。

  6. 在“成员”选项卡上,单击“添加成员”

  7. 在对话框中,浏览或搜索要添加和选择的用户、服务主体和组。

  8. 单击“确认”。

更改组的名称

帐户管理员可以使用帐户控制台更新组的名称,组管理员可以使用 帐户组 API 更新组的名称。 要让外部组与 Microsoft Entra ID 保持同步,默认情况下,无法在帐户控制台中更新外部组的名称。

帐户控制台

  1. 作为帐户管理员,登录到帐户控制台。

  2. 在边栏中,单击“用户管理”。

  3. 在“组”选项卡上,选择要更新的组。

  4. 单击“组信息”

  5. 在“名称”下,更新名称。

  6. 单击“ 保存”。

帐户组 API

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

update-group.json:

{
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      {
          "op": "replace",
          "path": "displayName",
          "value": "<updated-name>"
      }
    }
  ]
}

有关如何对帐户组 API 进行身份验证的信息,请参阅 授权访问 Azure Databricks 资源

将组分配到工作区

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页将组分配到 Azure Databricks 工作区。

帐户控制台

若要使用帐户控制台将组添加到工作区,工作区必须启用联合身份验证。 工作区本地组不可分配到工作区。

  1. 作为帐户管理员,登录到帐户控制台。

  2. 在边栏中单击“工作区”。

  3. 单击工作区名称。

  4. 在“权限”选项卡上,单击“添加权限”

  5. 搜索并选择组,分配权限级别(工作区“用户”或“管理员”),然后单击“保存”。

工作区管理员设置

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

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

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

  4. 旁边,单击管理

  5. 单击“添加组”。

  6. 选择要分配到工作区的现有组。

  7. 单击 添加

从工作区中删除组

从工作区中移除帐户组时,组成员将无法再访问工作区,但该组的权限会保留。 如果稍后将该组添加回工作区,则组将重新获得其以前的权限。

帐户管理员和工作区管理员可以使用帐户控制台或工作区管理员设置页从 Azure Databricks 工作区中删除组。

帐户控制台

若要使用帐户控制台移除工作区中的组,工作区必须启用身份联合。 无法使用帐户控制台从工作区中删除工作区本地组。

  1. 作为帐户管理员,登录到帐户控制台。

  2. 在边栏中单击“工作区”。

  3. 单击工作区名称。

  4. 在“权限”选项卡上,找到组。

  5. 单击组行最右侧的 Kebab 菜单 烤肉串菜单,然后选择“ 删除”。

  6. 在确认对话框中,单击“ 删除”。

工作区管理员设置

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

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

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

  4. 旁边,单击管理

  5. 选择组并单击“x 删除”

  6. 单击“删除”进行确认。

管理组内角色

重要

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

帐户管理员可以在帐户控制台中的组上授予角色,工作区管理员可以使用工作区管理员设置页管理组角色。 非工作区管理员的组管理员可以使用帐户访问控制 API 管理组角色。

帐户控制台

  1. 作为帐户管理员,登录到帐户控制台

  2. 在边栏中,单击“用户管理”。

  3. 在“组”选项卡上,找到并单击组名称。

  4. 单击“权限”选项卡。

  5. 单击“授予访问权限”。

  6. 搜索并选择用户、服务主体或组,然后选择“组:管理员”角色。

  7. 单击“ 保存”。

工作区管理员设置

你无法在帐户组上分配工作区本地组或系统组角色。

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

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

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

  4. 旁边,单击管理

  5. 选择要更新的组。 必须具有组管理员角色才能更新组。

  6. 单击“权限”选项卡。

  7. 单击“授予访问权限”。

  8. 搜索并选择用户、服务主体或组,然后选择“组:管理员”角色。

  9. 单击“ 保存”。

向组分配帐户管理员角色

无法使用帐户控制台将帐户管理员角色分配给组,但可以使用 帐户组 API 将其分配给组。 例如:

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

update-group.json:

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "add",
      "path": "roles",
      "value": [
        {
          "value": "account_admin"
        }
      ]
    }
  ]
}

有关如何对帐户组 API 进行身份验证的信息,请参阅 授权访问 Azure Databricks 资源

查看父组

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

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

  3. 单击“身份验证和访问控制”选项卡。

  4. 旁边,单击管理

  5. 选择要查看的组。

  6. 在“父组”选项卡上,查看你的组的父组。

从 Azure Databricks 帐户中删除组

帐户管理员可以从 Azure Databricks 帐户中删除组。 组管理员还可以使用帐户组 API 从帐户中删除组,请参阅 使用 API 管理组。 如果你要使用帐户控制台删除组,必须确保同时还要使用为帐户设置的任何 SCIM 预配连接器或 SCIM API 应用程序删除该组。 如果不这样做,SCIM 预配会在下次同步时将组及其成员添加回来。 请参阅使用 SCIM 从 Microsoft Entra ID 同步用户和组

重要

当你删除一个组时,该组中的所有用户都会从帐户中删除,并失去对他们有权访问的任何工作区的访问权限(除非他们是另一个组的成员,或者已被直接授予对该帐户或任何工作区的访问权限)。 Databricks 建议不要删除帐户级别组,除非你希望它们失去对帐户中所有工作区的访问权限。 请注意删除用户会产生以下后果:

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

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

  1. 作为帐户管理员,登录到帐户控制台。

  2. 在边栏中,单击“用户管理”。

  3. 在“组”选项卡上,找到要删除的组。

  4. 单击用户行最右侧的 Kebab 菜单 烤肉串菜单,然后选择“ 删除”。

  5. 在确认对话框中,单击“确认删除”。

注释

启用自动标识管理后,Microsoft Entra ID 中的组在帐户控制台中可见。 其状态显示为 “非活动”:无使用情况 ,无法从组列表中删除。 他们在帐户中处于非活动状态,并且不会计入限制。

使用 API 管理组

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

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

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

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

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

请参阅工作区分配 API

使用 API 管理组的角色

重要

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

组管理员可以使用帐户访问控制 API 管理组角色。 帐户管理员、工作区管理员和组管理员使用不同的终结点 URL 调用 API:

  • 帐户管理员使用 {account-domain}/api/2.0/preview/accounts/{account_id}/access-control/assignable-roles
  • 工作区管理员和组管理员使用 {workspace-domain}/api/2.0/preview/accounts/access-control/assignable-roles

请参阅帐户访问控制 API帐户访问控制工作区代理 API

管理组的 API 示例

以下示例演示工作区管理员如何使用 帐户组 API工作区分配 API 来管理组。 工作区管理员使用 API 令牌向工作区进行身份验证。

创建帐户组

curl --request POST \
  --location '{workspace-domain}/api/2.0/account/scim/v2/Groups' \
  --header 'Authorization: Bearer $OAUTH_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "displayName": "<group-name>"
  }'

这会返回新帐户组的组 ID。 将它保存到以下 API 示例中以供参考。

将组添加到工作区

以下示例展示了如何使用具有工作区用户权限的方式将组添加到工作区。 您还可以将 permissions 设置为 ["ADMIN"],以授予组工作区管理员角色。

curl --location --request PUT '{workspace-domain}/api/2.0/preview/permissionassignments/principals/{group-id}' \
  --header 'Authorization: Bearer $OAUTH_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "permissions": ["USER"]
  }'

从工作区中移除组

以下示例从您的工作区中删除一个组。 从工作区删除一个组并不会将该组从帐户中删除。

curl --location --request PUT '{workspace-domain}/api/2.0/preview/permissionassignments/principals/{group-id}' \
  --header 'Authorization: Bearer $OAUTH_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "permissions": []
  }'

将成员添加到组

curl --location --request PATCH '{workspace-domain}/api/2.0/accounts/{account_id}/scim/v2/Groups/{group-id}' \
  --header 'Authorization: Bearer $OAUTH_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
      {
        "op": "add",
        "value": {
          "members": [
            {
              "value": "{user-id}"
            }
          ]
        }
      }
    ]
  }'