本文介绍如何使用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';