代码改变世界

ClickHouse 创建管理员用户

2024-11-13 20:48  abce  阅读(86)  评论(0编辑  收藏  举报

在安装/重新部署时,ClickHouse 会创建一个名为 "default" 的用户。该用户可以不受限制地访问群集中的数据,我们还可以在 users.xml 文件中提供访问管理权限(默认情况下并未打开)。

与可能需要管理员权限的多人共享默认用户的凭据并不是一个好主意。最佳做法是创建一个具有“管理员”权限的角色,并将该角色授予指定为“管理员 ”的用户。让我们看看创建管理员角色并将其分配给用户的步骤。

 

1.开启 SQL 模式

users.xml 文件中,在 <default> 这一节做以下配置,开启 SQL 模式:

<!-- User can create other users and grant rights to them. -->
<access_management>1</access_management>

<!-- User can manipulate named collections. -->
<named_collection_control>1</named_collection_control>


<show_named_collections>1</show_named_collections>
<show_named_collections_secrets>1</show_named_collections_secrets>

要想创建一个具有管理员级别权限的角色,需要开启以上配置。

 

default 用户是全新安装时创建的唯一用户,默认情况下也是用于节点间通信的账户。既然 default 账户用于节点间通信,在生产过程中,建议在使用 SQL 模式的管理员用户通过使用<secret>、群集凭据和/或节点间 HTTP 和传输协议凭据设置了节点间通信后,禁用该用户。

 

设置后需要重启 clickhouse。

 

2.创建管理员角色

create role 'admin';
grant all on *.* to admin with grant option;

 

3.创建用户并授予 admin 角色

create user test identified with plaintext_password by 'test';
grant admin to test;