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