由于clickhouse自带的默认用户只有一个(default),在实际的使用过程中,经常需要根据不同的使用人员创建不同类型的角色账号。
创建一个新账号与设置角色权限
在/etc/clickhouse-server 目录下,编辑users.xml,其中的<users>标签定义用户的相关配置信息,其结构如下:
<users>
<username> <!--用户登录名-->
<password>123</password> <!--用户登录密码-->
<networks>
<ip>::/0</ip>
</networks> <!--允许登录的网络地址-->
<profile>default</profile> <!--用户使用的profile配置-->
<quota>default</quota> <!--用户能够使用的资源限额/熔断机制-->
</username>
<users>
在users.xml中添加了如下配置之后,即可完成一个新用户的配置
1、用户密码的配置有三种方法,详情参考:clickhouse(二) 设置用户的登录密码
2、<networks>表示网络的访问权限,用于限制某个用户登录的客户端地址,共分为IP地址、Host主机名称以及正则匹配三种类型。
(1)、IP地址:直接使用ip地址
<ip>127.0.0.1</ip>
(2)、使用host主机名:使用host主机名设置
<host>ch5.nauu.com</host>
(3)、正则匹配:通过表达式来匹配host名称
<host>^ch\d.nauu.com$</host>
在配置了<networks>标签之后,如果登录的客户端与配置规则不匹配,就会无法登录
3、<profile>标签定义了用户的角色信息,在users.xml中的<profiles>标签中定义。
<profiles>标签下的每一个子标签代表了一种角色的信息,例如:配置了下面这个配置的用户只具有查询数据的功能
<readonly>
<readonly>1</readonly>
</readonly>
4、<quota>标签定义了用户单位时间内的资源限制,也可以称为是一种熔断机制。
当用户的资源使用情况达到配置阈值时,就会触发熔断机制(熔断是限制资源被过度使用的一种保护机制),正在进行的操作就会被自动切断。
<quota>标签的详细配置在users.xml文件中,每一个子标签代表一种quota配置。同样的,clickhouse也给出了默认的参考配置
<quota>
<default>
<interval>
<duration>3600</duration>
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
<default>
</quota>
1、duration
duration表示累计的时间周期,单位为秒,达到该时间周期后,清除所有收集的值,接下来的周期,将重新开始计算,当服务重启时,也会清除所有的值,重新开始新的周期。
2、queris
queris表示在该周期内,允许执行的查询次数,0为不限制。
3、errors
errors表示在该周期内,允许引发异常的查询次数,0为不限制。
4、result_rows
result_rows表示在周期内,允许查询返回的结果行数,0为不限制。
5、read_rows设置
read_rows表示在周期内,允许远程节点读取的数据行数,0为不限制。
6、execution_time设置
execution_time表示允许查询的总执行时间(又叫wall time),单位为秒,0为不限制。
如有错误,欢迎指正!