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