【clickhouse专栏】新建库、用户及角色

举报
字母哥哥 发表于 2022/06/11 23:15:15 2022/06/11
【摘要】 文章目录 一、创建新的database二、为default账户增加管理权限三、创建角色及用户创建角色创建普通账户并赋权 推荐阅读 一、创建新的database clickhous...

一、创建新的database

clickhouse创建数据库的语法几乎和其他的关系型数据库是一样的,区别就是clickhouse存在集群cluster和库引擎engine的概念,可以根据需要进行指定。如果没有特殊需求,默认即可。

CREATE  DATABASE  [IF  NOT  EXISTS] db_name [ON CLUSTER cluster]  [ENGINE  =  engine(...)]


  
 
  • 1
  • 2

在创建数据库的时候,我们首先要确认保存数据库文件的目录,对于clickhouse用户有读写的权限。如果你在安装的时候,没有修改数据库文件目录,默认的目录是/var/lib/clickhouse/。我们可以使用下面的命令,将该目录及其子目录的属主修改为clickhouse用户。

chown clickhouse /var/lib/clickhouse/ -R


  
 
  • 1
  • 2

完成上面的操作步骤之后,就可以通过clickhouse-client -m --password <你的密码>连接clichouse服务实例,创建数据库的SQL如下:

:) CREATE DATABASE acaidb;


  
 
  • 1
  • 2

创建数据库完成之后,使用show databases;命令看一下当前的clickhouse,有哪些database。(acaidb是我们自建的,default和system是clickhouse默认创建的database)

:) show databases;

┌─name────┐
│ acaidb  │
│ default │
│ system  │
└─────────┘


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

二、为default账户增加管理权限

ClickHouse默认创建一个数据库default,默认创建了一个用户default。我们现在针对default用户增加访问管理权限,因为该用户默认情况下是不具备管理员权限的,即:默认情况下,无法使用该用户添加角色、添加用户、以及其他权限管理操作。

所以为了让default用户的管理权限更大一些,我们修改 /etc/clickhouse-server/users.xml 文件,在users-> default标签中,将access_management的注释去掉。(在有些版本中其默认值是0,修改为1)图片

修改完成配置文件之后,重启clickhouse-server,使用如下命令:

clickhouse  restart


  
 
  • 1
  • 2

三、创建角色及用户

创建角色

创建一个角色acaidb_rw, 该角色针对数据库acaidb具备读写权限。

CREATE ROLE acaidb_rw;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON acaidb.* TO acaidb_rw;


  
 
  • 1
  • 2
  • 3

如果让一个角色只允许select,不允许修改数据,下面的语句就可以。

CREATE ROLE acaidb_read;
GRANT SELECT ON acaidb.* TO acaidb_read;


  
 
  • 1
  • 2
  • 3

创建普通账户并赋权

我们分别创建账户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;


  
 
  • 1
  • 2
  • 3
  • 4

使用下列命令访问clickhouse数据,show databases得到acaidb,说明我们成功了。因为acai用户只能访问acaidb。

# clickhouse-client -m -u acai --password '<你的密码>' --query 'show databases;'
acaidb


  
 
  • 1
  • 2
  • 3

推荐阅读

《clickhouse专栏》

文章来源: zimug.blog.csdn.net,作者:字母哥哥,版权归原作者所有,如需转载,请联系作者。

原文链接:zimug.blog.csdn.net/article/details/125230802

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。