利志分享
fast_forward
view_headline
go教程
clickhouse教程
python教程
shell教程
原创杂文
打赏
go教程
clickhouse教程
python教程
shell教程
原创杂文
打赏
clickhouse入门
clickhouse概述
clickhouse安装和部署
clickhouse数据类型
clickhouse表引擎学习
clickhouse表引擎学习2
clickhouse的sql语法功能1-创建库,创建表等
clickhouse的sql语法2之select功能
clickhouse的sql语法3之alter和show功能
clickhouse的sql语法4之system的了解-查看当前实时连接数
clickhouse的sql语法5之账号授权功能
clickhouse实战
clickhouse实现漏斗功能
clickhouse实现留存数和留存率计算
目录
clickhouse入门
clickhouse概述
clickhouse安装和部署
clickhouse数据类型
clickhouse表引擎学习
clickhouse表引擎学习2
clickhouse的sql语法功能1-创建库,创建表等
clickhouse的sql语法2之select功能
clickhouse的sql语法3之alter和show功能
clickhouse的sql语法4之system的了解-查看当前实时连接数
clickhouse的sql语法5之账号授权功能
clickhouse实战
clickhouse实现漏斗功能
clickhouse实现留存数和留存率计算
clickhouse的sql语法5之账号授权功能
阅读:21
分享次数:0
1:clickhouse配置管理员权限管理员账户主要用来进行权限分配和管理用的;需要在user.xml中进行如下配置: <admin> <password>123456</password> <access_management>1</access_management> <profile>default</profile> <quota>default</quota> </admin> clickhouse自带default用户,但是该用户拥有所有权限且没有设置登陆密码和开启RBAC access_management 默认为0,设置为1标识开启RBAC权限控制。 admin 配置的用户名 password 用户对应的密码 profile clickhouse角色 quota 配额,分配给该用户的资源 2:新增权限路径配置 vim /etc/clickhouse-server/config.xml 在<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>下 增加<access_control_path>/var/lib/clickhouse/access/</access_control_path> 3:重启clickhouse systemctl restart clickhouse-server 上面三个步骤之后就能用admin账号登录之后创建新的角色进行授权了。 ------------ 下面我们来试验一下 1:创建一个zhuihui的账号,密码是123456 2:创建一个test_role的角色 3:授权test_role角色的test库的权限 4:分配test_role给zhuihui这个账号 5:登录zhuihui账号查看授权库是否正常 1:创建用户 CREATE USER zhuihui IDENTIFIED WITH PLAINTEXT_PASSWORD BY '123456'; 2:创建角色 CREATE ROLE test_role; 3:授权test库给查询功能 GRANT SELECT ON test.* TO test_role; 4:分配角色给账号 GRANT test_role TO zhuihui; 5:登录zhuihui账号查询权限 clickhouse-client --host 127.0.0.1 --user zhuihui --password 123456 最后登录权限如下,截图如下:  授权完了,我们通过角色回收一下权限: REVOKE SELECT ON test.* FROM test_role; 执行上面命令之后zhuihui就没有权限了再查看了。 ------------ 下面我们给default.example授权country_code,os_id这两个字段的查询权限。 GRANT SELECT(country_code,os_id) ON default.example TO zhuihui WITH GRANT OPTION 授权之后我们去使用select * from example;去查询,则会报错:Code: 497. DB::Exception: Received from 127.0.0.1:9000. DB::Exception: zhuihui: Not enough privileges. To execute this query it's necessary to have grant SELECT(country_code, os_id, browser_id, categories, action_day, action_time) ON default.example.只有select country_code,os_id from example;这样查询,则返回正常。 我们也可以去取消一个字段的权限: REVOKE SELECT(country_code) ON default.example FROM zhuihui; 最后我们整理下相关语句: 用户相关的语句 CREATE USER ALTER USER DROP USER SHOW CREATE USER 角色相关的语句 CREATE ROLE ALTER ROLE DROP ROLE SET ROLE SET DEFAULT ROLE SHOW CREATE ROLE grant语句: GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION] GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_USER} [,...] [WITH ADMIN OPTION] 示例: GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTION 权限繁多可以参考: https://clickhouse.tech/docs/en/sql-reference/statements/grant/ clickhouse授权的功能实例已经在这里给大家展示了,有需要的可以学习一下。
感觉本站内容不错,读后有收获?
attach_money
我要小额打赏,鼓励作者写出更好的教程
扫码关注公众号:talk_lizhi