在安裝/重新部署時,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;