【clickhouse专栏】新建库角色用户初始化
一、创建新的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
推荐阅读
限于博文篇幅,更多精彩内容我就不一一列举了,推荐阅读
《原创精品视频及配套文档:springboot-已录制97节(免费)》
等等等等
【clickhouse专栏】新建库角色用户初始化的更多相关文章
- ASP.NET Core 3.0 一个 jwt 的轻量角色/用户、单个API控制的授权认证库
目录 说明 一.定义角色.API.用户 二.添加自定义事件 三.注入授权服务和中间件 三.如何设置API的授权 四.添加登录颁发 Token 五.部分说明 六.验证 说明 ASP.NET Core 3 ...
- 【clickhouse专栏】单机版的安装与验证
<clickhouse专栏>第三节内容,先安装一个单机版的clickhouse,是后续学习多副本或者分布式集群安装的基础内容.但基本的clickhouse是不依赖于zookeeper的,只 ...
- Oralce新建数据库、新建远程登录用户全过程
Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库. 对于初学者来说,为了避免麻烦,可以用'Database Configuration Assi ...
- 在Win7下新建库并修改图标
win7中在库中添加桌面方法详解 1.在空白处,鼠标右键选择新建——库. 2.命名为桌面,然后选择桌面. 3.鼠标右键选择属性. 4.点击包括文件夹. 5.选择桌面,点击包括文件夹按钮. 6.点击确定 ...
- 角色用户权限RBAC
关于角色.用户.权限的表设计,已经成为经典中的经典,到处都在用,这里只是收录一下: 角色表:{role_id,role_name} 用户表:{user_id,user_name} 权限表:{permi ...
- 【clickhouse专栏】数据库、数据仓库之间的区别与联系
从本篇文章开始,笔者打算写一个系列的<clickhouse专栏>,其全称是Click Stream,Data WareHouse,简称ClickHouse.从其全称中的"Data ...
- dbca建库sys用户被锁
奇怪问题:dbca建库sys用户被锁, 点击密码管理报账户被锁 而且在服务器上无法进行操作系统验证登陆,经过一番检查发现oracle用户和grid用户没有在dba组里 解决: 1.把oracle用户和 ...
- oracle10.2 dblink impd 同库不同用户复制数据
同库不同用户复制数据 1.授权用户导入表权限; SQL> grant exp_full_database to system; SQL> commit; 2.创建dblink; SQL&g ...
- oracle数据库新建库
1.https://jingyan.baidu.com/article/76a7e409f3f37bfc3b6e15de.html 利用工具新建库. 2.创建时报错 out of memory 调节s ...
随机推荐
- Exchange 2013 中 NDR 常见的失败返回状态代码
增强状态代码 描述 可能的原因 其他信息 4.3.1 Insufficient system resources 发生内存不足错误.资源问题(例如磁盘已满)可能导致该问题.您可能会收到内存不足错误,而 ...
- JAVASE Scanner
package com.huang.boke.flowPath;import java.util.Scanner;public class test01 { public static void ma ...
- c语言实现循环单链表
//初始化 Node*InitList() { Node*head=(Node*)malloc(sizeof(Node)); head->next=NULL; head->data=-1; ...
- IETF 官网
IETF 官网 https://www.ietf.org/ IETF数据追踪网站: https://datatracker.ietf.org/
- NodeJs学习日报day5——导入模块
const { match } = require("assert") function dateFormat(dataStr) { const dt = new Date(dat ...
- SpringCloud分布式尝试记录
服务提供端: 客户消费端:
- toFixed()与银行家舍入
toFixed()与银行家舍入 一直在用toFixed()方法做浮点数的舍入取值,如果只是客户端展示数据是没有多大问题的,但是如果涉及到和后端互交,数据的精度可能会导致接口对接失败,当然了,涉及安全性 ...
- MySQL 的 GRANT和REVOKE 命令
MySQL 的 GRANT和REVOKE 命令 GRANT - 授权 将指定 操作对象 的指定 操作权限 授予指定的 用户; 发出该 GRANT语句的可以是数据库管理员,也可以是该数据库对象的创建者; ...
- Linux下快速拷贝单个大文件的秘诀
#include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <stdlib.h> ...
- vue - Vue组件化编程
今天是对vue组件化的一个理解,最主要的单文件组件,然后就可以脚手架的学习了,本来昨晚就该上传的,但是用的那个上传博客园的Python脚本不行了,换了一个新的. 组件化让我越来越感觉到框架的力量了 一 ...