
Clickhouse默认创建用户和策略权限方式是配置xml文件,除非前期用户权限规划的特别完美,否则运行中维护起来非常的麻烦。建议还是开启SQL驱动的方式来创建。
一、开启SQL驱动方式创建用户和权限前提条件
主文件开启存放用户的定义信息路径。如下配置:
<local_directory><!-- Path to folder where users created by SQL commands are stored. --><path>/data/clickhouse/access/</path></local_directory>
2.user.xml 文件配置 access_management 0是关闭,1是开启。如下配置:
<!-- User can create other users and grant rights to them. --><!-- <access_management>1</access_management> --><access_management>1</access_management>
默认ClickHouse提供了一个 default 账号,这个账号有所有的权限,但是不能使用SQL驱动方式的访问权限和账户管理。
二、实践建议
刚开始创建ClickHouse。推荐做法:首先为 default 用户开启SQL驱动方式的访问权限和用户管理。
然后使用 default 用户登录并且创建所需要的所有用户。不要忘记创建管理员账户 GRANT ALL ON *.* TO dba WITH GRANT OPTION;
最后限制 default 用户的权限并且禁用SQL驱动方式的访问权限和账户管理。
三、官方创建用户SQL语法如下:
CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [ON CLUSTER cluster_name1][, name2 [ON CLUSTER cluster_name2] ...][NOT IDENTIFIED | IDENTIFIED {[WITH {no_password | plaintext_password | sha256_password | sha256_hash | double_sha1_password | double_sha1_hash}] BY {'password' | 'hash'}} | {WITH ldap SERVER 'server_name'} | {WITH kerberos [REALM 'realm']}][HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE][DEFAULT ROLE role [,...]][DEFAULT DATABASE database | NONE][GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]][SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY | WRITABLE] | PROFILE 'profile_name'] [,...]
SQL创建用户和权限的简单流程大致是:创建用户,创建Role,给Role授权,给用户赋予role。
四、SQL创建用户简单参考
#创建用户CREATE USER dba666 IDENTIFIED WITH sha256_password BY '123456';#创建一个RoleCREATE ROLE accountant;#赋予Role accountant DB库的查询select权限GRANT SELECT ON db.* TO accountant;#给用户dba6赋予Role accountantGRANT accountant TO dba666;
如果您在日常运维工作中遇到了任何问题或挑战,无论是关于系统配置、性能优化、故障排除还是其他方面,都欢迎您随时留言或私信我。我会尽我所能为您提供解决方案或建议。相互学习,积累更多的经验和知识,让工作更加顺畅高效!
文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




