本文介绍如何使用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';
 
该文章对您有帮助吗?