关于java:clickhouse专栏新建库角色用户初始化

81次阅读

共计 1585 个字符,预计需要花费 4 分钟才能阅读完成。

一、创立新的 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 专栏》

正文完
 0