本文介紹如何使用GRANT
語句為雲資料庫ClickHouse的普通帳號授予許可權。
前提條件
目的地組群為社區相容版叢集。
您的資料庫帳號為高許可權帳號或者具備
GRANT
許可權的普通帳號。
使用限制
GRANT
語句僅支援為普通帳號授DML操作的許可權。
文法
GRANT [ON CLUSTER default]
priv_type [(column_list [,...])] [,...]
ON priv_level
TO {user | CURRENT_USER} [,...]
[WITH GRANT OPTION]
參數說明
ON CLUSTER default
:在每一個節點上都執行授權操作,固定為ON CLUSTER default
。priv_type
:權限類別型。取值說明,請參見權限類別型。column_list
:選擇性參數。指定參數值時,授予指定列的許可權。不指定時,授予所有列的許可權。例如:當
priv_type
為SELECT
,column_list
為name時,表示為帳號授予name列的SELECT
許可權。priv_level
:授權的層級。*.*
:叢集層級。db_name.*
:資料庫層級。db_name.table_name
或者table_name
:表層級。
WITH GRANT OPTION
:授予帳號GRANT
的許可權。被授予GRANT
許可權的帳號能夠將自己被授與權限再授予給其他帳號。
樣本
為帳號account2授予叢集層級的
all
許可權。GRANT ON CLUSTER default all ON *.* TO 'account2';
為帳號account3授予ck_demo資料庫的
all
許可權。GRANT ON CLUSTER default all ON ck_demo.* TO 'account3';
為帳號account1和account2授予
SELECT
和INSERT
許可權。GRANT ON CLUSTER default SELECT,INSERT ON *.* TO 'account1','account2'
通過
CREATE USER
建立帳號,再通過GRANT
授權帳號。建立帳號並給其授予叢集層級DML許可權。
CREATE USER 'test' ON CLUSTER default IDENTIFIED WITH sha256_password BY 'Testpassword1'; GRANT ON CLUSTER default INSERT,SELECT,ALTER,DROP on *.* to 'test';
建立帳號並給其授予ck_demo資料庫的DML許可權。
CREATE USER 'test123' ON CLUSTER default IDENTIFIED WITH sha256_password BY 'Testpassword123'; GRANT ON CLUSTER default INSERT,SELECT,ALTER,DROP on ck_demo.* to 'test123';
建立帳號並給其授予customer表中customer_id和gender列的
SELECT
許可權。CREATE USER 'test321' ON CLUSTER default IDENTIFIED WITH sha256_password BY 'Testpassword321'; GRANT ON CLUSTER default SELECT (customer_id, gender) ON customer to 'test321';