ClickHouse之访问权限控制

摘要:
Ck当前只有select和insert。这是我刚才提到的:60cd41aedc4e47e8883682b416109e7b7e345e15ecc63c2c98ecdab5e8e053a只读defaultdefault此部分意味着添加具有只读权限的dba用户。允许访问的数据库是默认值。源IP不受限制::/0尝试以dba用户身份登录:clickhouse-client-udba-h192.168.0.10--passwordmc1lF9cI[root@db_server_yayun_02~]#Clickhouse客户端udba-h192.168.0.10--密码mc1lF9cClickhouse客户端版本1.1.54198连接到192.168.0.10:9000用户数据库。连接到ClickHouseserver1.1.54198版本,让我们看看是否可以访问::)useyayunUSEYayunReceivedexception来自服务器:代码:291。数据库::异常:从192.168.0.10:9000接收。数据库:异常:访问被拒绝的数据库yayun.0rowsinset。已用时间:0.035秒您可以看到没有权限。如上所述,只有访问默认库的权限可用。尝试:)createdatabasedb01REATEDABASEdb01从服务器接收接收接收接收:代码:164。DB::异常:从192.168.0.10:9000接收。DB::异常:无法在只读模式下执行查询。已用时间:0.023秒:)您可以看到只读模式。权限相对简单。有关更多信息,请参阅官方文档。或读取用户。xml。

研究ClickHouse也有几周了,今天来和大家说说ClickHouse的访问权限是怎么做的,ClickHouse不像MySQL那样,直接创建用户,而是需要在配置文件里面添加用户,一个简单的例子如下:

<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>

默认的配置文件路径是:/etc/clickhouse-server
其中有config.xml,users.xml,一个是服务器相关配置,一个是用户权限的配置。下面看看users.xml。这里面分几部分。

1. 用户名,用户密码,访问来源地址

2. 资源限制,和greenplum有点像。

3. 配置设置,这其中有用户是否只读。ck目前只有select和insert。所以权限也比较简单。

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

PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
[root@db_server_yayun_03 ~]# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
AwBtorOK
4e588aea92dc77d0960505f6ff5e843eab388c28f1c85fae9df917f89ebb0ed6 

其中AwBtorOK就是用户的密码,4e588aea92dc77d0960505f6ff5e843eab388c28f1c85fae9df917f89ebb0ed6就是密文,需要写在配置文件里面。下面说说刚开始提到的:

<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中的。这个配置只是引用而已。

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

下面用dba用户登录试试:

clickhouse-client -u dba -h 192.168.0.10 --password mc1lF9cI
[root@db_server_yayun_02 ~]# clickhouse-client -u dba -h 192.168.0.10 --password mc1lF9cI
ClickHouse client version 1.1.54198.
Connecting to 192.168.0.10:9000 as user dba.
Connected to ClickHouse server version 1.1.54198.

:) 

可以看见已经登录,数据库中还有一个yayun数据库,我们看看能否访问:

:) use yayun

USE yayun

Received exception from server:
Code: 291. DB::Exception: Received from 192.168.0.10:9000. DB::Exception: Access denied to database yayun. 

0 rows in set. Elapsed: 0.035 sec. 

可以看见提示没有权限,上面也说到过,只有访问default库的权限。我们再试试

:) use default

USE default

Ok.

0 rows in set. Elapsed: 0.002 sec. 

:) show tables;

SHOW TABLES

┌─name───────────┐
│ ontime_all     │
│ ontime_local   │
│ ontime_replica │
└────────────────┘
→ Progress: 3.00 rows, 189.00 B (399.91 rows/s., 25.19 KB/s.) 
3 rows in set. Elapsed: 0.008 sec. 

:) select * from ontime_all limit 1;

SELECT *
FROM ontime_all 
LIMIT 1

┌─FlightDate─┬─Year─┐
│ 2001-10-122001 │
└────────────┴──────┘
↘ Progress: 1.00 rows, 4.00 B (44.09 rows/s., 176.35 B/s.) 
1 rows in set. Elapsed: 0.023 sec. 

:) 

可以看见没有问题,那么能创建库表么?试试

:) create database db01

CREATE DATABASE db01

Received exception from server:
Code: 164. DB::Exception: Received from 192.168.0.10:9000. DB::Exception: Cannot execute query in readonly mode. 

0 rows in set. Elapsed: 0.023 sec. 

:) 

可以看见只读模式,权限比较简单,更多的请参考官方文档。或者仔细阅读users.xml。

参考文档:

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

免责声明:文章转载自《ClickHouse之访问权限控制》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇戴尔服务器R740-iDRAC管理卡远程安装系统Navicat数据存放位置和备份数据库路径设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

vsCode mongoDB插件 Azure Cosmos DB

安装完成后,要重启下vsCode会看到然后点击绿色的小按钮,选择MongoDB再输入MongoDB的连接地址。当然要先把本地的mongoDB数据库打开,cmd黑窗口输入mongod--dbpathxxxx打开本地数据库输入完成地址后,回车就可以连接到自己的MongoDB数据库了...

IntelliJ IDEA(2017)安装和破解

IDEA全称IntelliJIDEA,是Java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。用记事本打开分别在最下面一行增加一行:-javaagent:D:IDEAinJetbra...

移动端媒体查询的一些尺寸参考

device-width是设备实际的宽度,不会随着屏幕的旋转而改变,因此并不适合开发响应式网站。比如iphone5s的屏幕分辨率宽为640,由于retina显示策略,当scale设置为1的时候,对应的media中取到的width为320,当scale设置为0.5的时候,width为640,而device-width始终是320。总结1.device-widt...

PX4 飞控源码系统框架介绍

该部分主要是PX4系统的使用的所有的数据结构的集合部分,各种任务和sensor驱动中需要获取的sensor数据都在此部分,还包含各种运行状态的数据结构。...

Maven settings.xml配置详解

让我们来谈谈设置。对于Maven,xml相当于全局配置,用于所有项目。maven2-xml中有两个设置,作为全局配置位于maven2的安装目录conf下。对于团队设置,一致的定义是关键,因此maven2/conf Xml下面的设置是团队的通用配置文件。当然,每个成员都需要特殊的用户定义设置,例如用户信息,其他设置也是如此。xml用作本地配置。默认位置为:${...

选包

安装系统后,将不会安装一些基本工具。此时,您可以根据yum的要求安装它们。你也可以使用任何你想要的时尚。...