当前位置: 首页 > 后端技术 > Java

【clickhouse专栏】新建数据库角色用户初始化

时间:2023-04-01 23:33:09 Java

1.新建数据库clickhouse新建数据库的语法和其他关系型数据库几乎一样。不同的是clickhouse有cluster集群和libraryengine引擎的概念,可以根据需要指定创建。如果没有特殊要求,默认即可。CREATEDATABASE[IFNOTEXISTS]db_name[ONCLUSTERcluster][ENGINE=engine(...)]创建数据库的时候首先要确认数据库文件保存的目录,clickhouse用户有读写权限.如果安装时没有修改数据库文件目录,默认目录为/var/lib/clickhouse/。我们可以使用以下命令将该目录及其子目录的所有者更改为clickhouse用户。chownclickhouse/var/lib/clickhouse/-R完成以上步骤后,可以使用clickhouse-client-m--password<你的密码>连接到clickhouse服务实例,创建数据库的SQL如下::)CREATEDATABASEaaidb;创建数据库后,使用showdatabases;命令查看当前clickhouse中有哪些数据库。(acaidb是我们自己建的,default和system是clickhouse默认创建的数据库):)showdatabases;┌─name──────┐│aaidb││default││system│└────────────┘2.为默认账户添加管理权限ClickHouse默认创建数据库default,默认创建用户default。我们现在给默认用户添加访问管理权限,因为这个用户默认是没有管理员权限的,也就是默认情况下,这个用户是不能进行添加角色、添加用户等权限管理操作的。所以为了让默认用户有更多的管理权限,我们修改/etc/clickhouse-server/users.xml文件,去掉users->default标签中access_management的注释。(部分版本默认为0,修改为1。)修改配置文件后,重启clickhouse-server,使用如下命令:clickhouserestart3.创建角色,用户创建角色创建一个角色aaidb_rw,它对数据库aaidb有读写权限。CREATEROLEaaidb_rw;GRANTSELECT,INSERT,ALTERUPDATE,ALTERDELETEONaaidb.*TOaaidb_rw;如果一个角色只允许选择而不允许修改数据,下面的语句就可以了。CREATEROLEaaidb_read;GRANTSELECTONaaidb.*TOaaidb_read;创建一个普通账户,授权我们分别创建账户reader和writer,然后将只读角色ro分配给reader,将读写角色分配给writer。这样读者就有了只读权限,而写者就有了读写权限。创建一个新的数据库用户acai并设置密码(替换下面的)。并赋予用户acai读写权限角色aaidb_rw。如果用sha256_passwordBY''标识的acai不存在则创建用户;将aaidb_rw授予acai;使用如下命令访问clickhouse数据,showdatabases得到aaidb,说明我们成功了。因为acai用户只能访问acaidb。#clickhouse-client-m-uacai--password'<你的密码>'--query'showdatabases;'acaidb推荐阅读《clickhouse专栏》