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