二.clickhouse 配置认证(clickhouse 极简教程系列)

1.ClickHouse不像MySQL那样,直接创建用户,而是需要在配置文件里面添加用户
2.用户置文件默认位置:

1
/etc/clickhouse-server/users.xml

users.xml。这里面分几部分。

  1. 用户名,用户密码,访问来源地址
  2. 资源限制,和greenplum有点像。
  3. 配置设置,这其中有用户是否只读。ck目前只有select和insert。所以权限也比较简单。

密码需要特殊说明,如果不写,那么就是空密码,也可以写明文密码,也可以写密文,可以用如下命令生成密文密码:

1
2
3
# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-' AwBtorOK
4e588aea92dc77d0960505f6ff5e843eab388c28f1c85fae9df917f89ebb0ed6

其中AwBtorOK就是用户的密码,4e588aea92dc77d0960505f6ff5e843eab388c28f1c85fae9df917f89ebb0ed6就是密文,需要写在配置文件里面。
下面是一个例子:

1
2
3
4
5
6
7
8
9
<dba>
<password_sha256_hex>60cd41aedc4e47e8883682b416109e7b7e345e15decc63c2c98ecdab5e8e053a</password_sha256_hex>
<networks incl="networks" />
<profile>readonly</profile>
<quota>default</quota>
<allow_databases>
<database>default</database>
</allow_databases>
</dba>

这段的意思就是添加一个dba用户,只读权限,允许访问的数据库是default。来源ip是不限制。这个是配置在/etc/metrika.xml中的。这个配置只是引用而已。

//metrika.xml里的信息

1
<networks> <ip>::/0</ip> </networks>

下面用dba用户登录试试:

clickhouse-client -u dba -h 192.168.0.10 –password mc1lF9cI

可以看见只读模式,权限比较简单,更多的请参考官方文档。或者仔细阅读users.xml。
ps:里面有默认的账户 default 可以参考

参考文档:

https://clickhouse.yandex/reference_en.html#Access%20rights