一、创立新的 database
clickhouse 创立数据库的语法简直和其余的关系型数据库是一样的,区别就是 clickhouse 存在集群 cluster 和库引擎 engine 的概念,能够依据须要进行指定。如果没有非凡需要,默认即可。
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]
在创立数据库的时候,咱们首先要确认保留数据库文件的目录,对于 clickhouse 用户有读写的权限。如果你在装置的时候,没有批改数据库文件目录,默认的目录是/var/lib/clickhouse/
。咱们能够应用上面的命令,将该目录及其子目录的属主批改为 clickhouse 用户。
chown clickhouse /var/lib/clickhouse/ -R
实现下面的操作步骤之后,就能够通过 clickhouse-client -m --password < 你的明码 >
连贯 clichouse 服务实例,创立数据库的 SQL 如下:
:) CREATE DATABASE acaidb;
创立数据库实现之后,应用 show databases;
命令看一下以后的 clickhouse,有哪些 database。(acaidb 是咱们自建的,default 和 system 是 clickhouse 默认创立的 database)
:) show databases;
┌─name────┐
│ acaidb │
│ default │
│ system │
└─────────┘
二、为 default 账户减少管理权限
ClickHouse 默认创立一个数据库 default,默认创立了一个用户 default。咱们当初针对 default 用户减少拜访管理权限,因为该用户默认状况下是不具备管理员权限的,即:默认状况下,无奈应用该用户增加角色、增加用户、以及其余权限治理操作。
所以为了让 default 用户的管理权限更大一些,咱们批改 /etc/clickhouse-server/users.xml
文件,在 users-> default 标签中,将 access_management 的正文去掉。(在有些版本中其默认值是 0,批改为 1)
批改实现配置文件之后,重启 clickhouse-server,应用如下命令:
clickhouse restart
三、创立角色及用户
创立角色
创立一个角色 acaidb_rw, 该角色针对数据库 acaidb 具备读写权限。
CREATE ROLE acaidb_rw;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON acaidb.* TO acaidb_rw;
如果让一个角色只容许 select,不容许批改数据,上面的语句就能够。
CREATE ROLE acaidb_read;
GRANT SELECT ON acaidb.* TO acaidb_read;
创立一般账户并赋权
咱们别离创立账户 reader 和 writer,而后把只读角色 ro 调配给 reader,把读写角色调配给 writer。这样,reader 领有只读权限,writer 领有读写权限。
新建一个数据库用户 acai,并设置明码 (将下文的< 你的明码 >
替换)。并给用户 acai 赋予读写权限角色 acaidb_rw。
CREATE USER IF NOT EXISTS acai IDENTIFIED WITH sha256_password BY '< 你的明码 >';
GRANT acaidb_rw TO acai;
应用下列命令拜访 clickhouse 数据,show databases
失去 acaidb,阐明咱们胜利了。因为 acai 用户只能拜访 acaidb。
# clickhouse-client -m -u acai --password '< 你的明码 >' --query 'show databases;'
acaidb
举荐浏览
《clickhouse 专栏》