本指南适用于在 ClickHouse Cloud 中拥有 Admin 角色的用户。
ClickHouse Cloud 客户可以选择预定义的系统角色,也可以创建自定义角色并分配给用户。有关系统角色及其对应权限的更多信息,请参阅控制台角色和权限。本指南将详细介绍如何管理自定义角色。
创建自定义角色
自定义角色可以包含组织、服务和数据库权限的任意组合。权限可应用于全部或部分服务和数据库。
进入组织设置并选择 Users and roles
在 services 页面中,选择你的组织名称。然后在弹出菜单中选择 Users and roles 菜单项。

[object Object]
在屏幕顶部中间选择 Roles 选项卡。

[object Object]
点击屏幕右上角的 Create new role 按钮。

为角色命名
输入一个便于识别的角色名称。这将是在为用户和 API 密钥 分配角色时显示的名称。

[object Object]
点击 Allow 按钮,然后从 Organization、Service 和/或 Database 权限中进行选择。有关所有权限的说明,请参阅控制台角色和权限。

检查新角色
完成之前,请检查分配给新角色的权限。确认无误后,点击 Create role。

管理数据库角色 (Beta)
除控制台权限外,自定义角色还可包含数据权限,以控制对所选服务中数据库的访问。这样,您可以在一个位置管理控制台和数据库访问权限,无需在每个数据库中分别维护角色。
向自定义角色添加数据权限时,ClickHouse Cloud 会在每个所选服务中创建一个对应的角色,并添加 cloud: 前缀。例如,名为 readonly 的自定义角色会在数据库中显示为 cloud:readonly。自定义角色的成员通过 SQL 控制台的免密码身份验证连接到服务时,将获得这些数据库权限。
前置条件
服务上的自定义数据库角色依赖于 JWT 身份验证,禁用时不会生效。在向角色添加数据权限之前,请进入相应服务,打开 Settings,然后在 Security 部分找到 JWT authentication 卡片。确保已启用 SQL 控制台 切换开关。

向角色添加数据权限
创建自定义角色,或编辑现有角色。在角色对话框中,单击 Allow permissions 按钮并选择 Data。
选择服务
选择要应用权限的服务。添加更多服务即可在多个服务中应用相同的 Read-only 或 Admin 权限。
选择访问级别
选择 Read-only、Admin 或 Custom 访问级别。选择 Custom 时,可通过 ClickHouse GRANT 语句定义具体的数据访问权限。仅当权限针对单个服务时才能选择 Custom 访问;若要为多个服务定义自定义权限,请为每个服务单独添加一项 Data 权限。

创建角色
单击 Create role。系统将在所选服务中创建数据库角色。角色最多可能需要 10 分钟才能同步到服务,但被分配该角色的用户在查询服务时会立即获得其权限。
验证数据库角色
通过控制台管理的角色会在数据库中创建,其名称带有 cloud: 前缀,存储类型为 cloud,创建后最多可能需要 10 分钟才会显示。要列出这些角色,请查询服务中的 system.roles 表:
SELECT * FROM system.roles;┌─name───────────┬─id───────────────────────────────────┬─storage─┐
│ cloud:readonly │ 9a4910f4-abcf-4904-466a-717c8c75ac42 │ cloud │
└────────────────┴──────────────────────────────────────┴─────────┘更新自定义角色
自定义角色创建后可以更新。用户会失去从该角色中移除的所有权限,并获得新增的所有权限。
- 进入组织设置,然后选择
Users and roles - 选择
Roles选项卡 - 选择要更新的角色旁边的三个点
- 选择
Edit - 修改权限
- 选择
Edit role
删除自定义角色
自定义角色可随时删除。
- 进入组织设置并选择
Users and roles - 选择
Roles选项卡 - 选择要删除的角色旁边的三个点
- 查看删除该角色后将失去访问权限的用户和 API 密钥,并按需调整分配。
- 选择
Delete role完成删除