一、clickhouse权限管理

users.xml默认配置文件:

<?xml version="1.0"?>
<clickhouse>
<profiles>
<default>
<load_balancing>random</load_balancing>
</default>
</profiles> <users>
<default>
<password></password>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
<!-- <access_management>1</access_management> -->
</default>
</users> <quotas>
<default>
<!-- Limits for time interval. You could specify many intervals with different limits. -->
<interval>
<!-- Length of interval. -->
<duration>3600</duration>
<!-- No limits. Just calculate resource usage for time interval. -->
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
</quotas>
</clickhouse>

users.xml

1.1 users.xml配置文件中设置权限

default权限默认过大需要做限制,可以限制IP或者设置密码

在配置文件中配置:/etc/clickhouse-server/users.xml

<?xml version="1.0"?>
<clickhouse>
<profiles>
<default>
<load_balancing>random</load_balancing>
</default> <!-- 配置只读权限 -->
<r_read> <!-- 自己取名,下面引用> --
<readonly>1</readonly>
<allow_ddl>0</allow_ddl>
</r_read> <!-- 配置写权限 -->
<w_write>
<load_balancing>random</load_balancing>
</w_write> <!-- 权限全局配置 -->
<readonly>
<readonly>1</readonly>
</readonly> </profiles> <users>
<default>
<!-- 明文密码或者加密密码,2选1就行 -->
<password>123456</password>
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex> <!-- 网络访问限制:内网IP访问或者所有IP都可以访问 -->
<networks>
<ip>::/0</ip>
</networks>
<!-- 引用上面的权限管理和下面的资源管理 -->
<profile>default</profile>
<quota>default</quota>
<!-- 是否开启sql驱动权限管理:0|1 ,sql命令赋权 -->
<!-- <access_management>1</access_management> -->
</default> <!-- 读 -->
<r_read>
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
<networks>
<ip>::/0</ip>
</networks>
<profile>r_read</profile>
<quota>default</quota>
<!-- 允许看到的数据库,甚至可以只让用户查看表或者表的多少行 -->
<allow_databases>
<database>test</database>
</allow_databases>
</r_read> <!-- 写 -->
<w_write>
<password>123456</password>
<networks>
<ip>::/0</ip>
</networks>
<profile>w_write</profile>
<quota>default</quota>
</w_write>
</users> <!-- 该用户使用的资源限制 -->
<quotas>
<default>
<!-- Limits for time interval. You could specify many intervals with different limits. -->
<interval>
<!-- Length of interval. -->
<duration>3600</duration>
<!-- No limits. Just calculate resource usage for time interval. -->
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
</quotas>
</clickhouse>

1.2 sql方式赋权

第一步:在users.xml中将default的赋值权限管理开通
<access_management>1</access_management> 第二步:sql命令创建用户、角色、授权角色给用户
-- 创建用户 chun、明文明码:123456
create user if not exists chun on cluster my_cluster IDENTIFIED WITH plaintext_password BY '123456'; -- 创建角色 chun_role
create role if not exists chun_role on cluster my_cluster ; -- 授权 test_db 库查询权限给 角色 chun_role
GRANT SELECT ON test_db.* TO chun_role on cluster my_cluster ; -- 分配角色给用户 chun
GRANT chun_role TO chun on cluster my_cluster ;
-- 登录
clickhouse-client --host 127.0.0.1 --user chun --password 123456 -- 收回角色 chun_role 的查询权限
REVOKE SELECT ON test_db.* FROM chun_role on cluster my_cluster ;

二、 配置说明

查询权限是整个权限体系的第二层防护,它决定了一个用户能够执行的查询语句,查询权限可以分为以下四类:
读权限:包括SELECT、EXISTS、SHOW和DESCRIBE查询。
写权限:包括INSERT和OPTIMIZE查询。
设置权限:包括SET查询。
DDL权限:包括CREATE、DROP、ALTER、RENAME、ATTACH、DETACH和TRUNCATE查询

2.1 readonly

读权限、写权限和设置权限均由此标签控制,它有三种取值:

当取值为0时,不进行任何限制(默认值)
当取值为1时,只拥有读权限(只能执行SELECT、EXISTS、SHOW和DESCRIBE)
当取值为2时,拥有读权限和设置权限(在读权限基础上,增加了SET查询)

2.2 allow_ddl

DDL权限由此标签控制,它有两种取值:

当取值为0时,不允许DDL查询。
当取值为1时,允许DDL查询(默认值)。 需要注意的是readonly和allow_ddl需要定义在用户使用的profiles角色中

三、命令赋权

# 添加账号新库权限
db.updateUser(
"test",
{
# 旧权限
roles:[{ "role" : "userAdminAnyDatabase", "db" : "admin" },
# 新增权限
{role:"readWrite",db:"testdb2"},{ "role" : "dbAdmin", "db" : "testdb2" }]
}
) # 第二种方式
db.grantRolesToUser("test",[{role:"readWrite",db:"testdb2"},{ "role" : "dbAdmin", "db" : "testdb2" }])

参考资料:

clickhouse权限设置情况

OLAP系列之分析型数据库clickhouse权限控制(六)的更多相关文章

  1. 悠星网络基于阿里云分析型数据库PostgreSQL版的数据实践

    说到“大数据”,当下这个词很火,各行各业涉及到数据的,目前都在提大数据,提数据仓库,数据挖掘或者机器学习,但同时另外一个热门的名词也很火,那就是“云”.越来越多的企业都在搭建属于自己的云平台,也有一些 ...

  2. AnalyticDB - 分析型数据库

    https://yq.aliyun.com/teams/31?spm=5176.7937365.1120968.ee1.78505692UL9DhG 分析型数据库(AnalyticDB)是一种高并发低 ...

  3. 什么是分析型数据库PostgreSQL版

    分析型数据库PostgreSQL版(原HybridDB for PostgreSQL)为您提供简单.快速.经济高效的 PB 级云端数据仓库解决方案.分析型数据库PostgreSQL版 兼容 Green ...

  4. 阿里下一代云分析型数据库AnalyticDB入选Forrester云化数仓象限

    前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester Wave: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析型数 ...

  5. 阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读

    前言近期, 全球权威IT咨询机构Forrester发布"The Forrester WaveTM: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析型 ...

  6. 回首2018 | 分析型数据库AnalyticDB: 不忘初心 砥砺前行

    题记 分析型数据库AnalyticDB(下文简称ADB),是阿里巴巴自主研发.唯一经过超大规模以及核心业务验证的PB级实时数据仓库.截止目前,现有外部支撑客户既包括传统的大中型企业和政府机构,也包括众 ...

  7. 更强大的实时数仓构建能力!分析型数据库PostgreSQL 6.0新特性解读

    阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务 ...

  8. amazon redshift 分析型数据库特点——本质还是列存储

    Amazon Redshift 是一种快速且完全托管的 PB 级数据仓库,使您可以使用现有的商业智能工具经济高效地轻松分析您的所有数据.从最低 0.25 USD 每小时 (不承担任何义务) 直到每年每 ...

  9. linux入门系列9--用户管理及文件权限控制

    ​ 前面文章分享了Linux下常用命令以及Shell编程相关知识,本节继续学习Linux用户管理及文件权限控制. ​ Linux是多用户多任务操作系统,具有很好的稳定性和安全性.既然是多用户,那就意味 ...

  10. Linux上Mysql数据库 用户权限控制

    Linux安装mysql 点我直达 Mysql限制root用户ip地址登录 修改mysql库里边的user表: update mysql.user set host='localhost' where ...

随机推荐

  1. 记录--用了那么久的Vue,你了解Vue的报错机制吗?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助   Vue的5种处理Vue异常的方法 相信大家对Vue都不陌生.在使用Vue的时候也会遇到报错,也会使用浏览器的F12 来查看报错信息.但 ...

  2. MySQL连接数超出最大值报错及修改

    报错: create connection SQLException, url: jdbc:mysql://xx.xxx.x.xx:6306/hksk-cloud-mes?characterEncod ...

  3. KingbaseES V8R6集群运维案例之---sys_hba.conf限制客户端访问数据库

    KingbaseES V8R6集群运维案例之---sys_hba.conf限制客户端访问数据库 案例说明: 客户端认证是由一个配置文件(通常名为sys_hba.conf并被存放在数据库集簇目录中)控制 ...

  4. 如何使用Java代码混淆技术保护您的应用程序

    摘要 本文探讨了代码混淆在保护Java代码安全性和知识产权方面的重要意义.通过混淆技术,可以有效防止代码被反编译.逆向工程或恶意篡改,提高代码的安全性.常见的Java代码混淆工具如IPAGuard.A ...

  5. Python爬取国家统计局2009至2020统计用区划和城乡划分代码(省市区/县三级)并存入mysql数据库

    国家统计局->统计标准网址:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/ 获取资源请关注公众号 [靠谱杨阅读人生]回复[城乡分类]获取 流程 ...

  6. C#添加自定义控件

    1.vs 控件工具箱添加选项卡 2.输入选项卡名称 我这里是Emgucv 3.点击选择项 4.点击浏览 找到Emgu.CV.Platform.NetFramework.dll 这是emgucv的C#控 ...

  7. 7 CSS选择器优先级

    7 选择器优先级 所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序.样式表中的特殊性描述了不同规则的相对权重. /* !important > 行内样式>ID选择器 > ...

  8. #莫比乌斯反演,欧拉函数#洛谷 5518 [MtOI2019]幽灵乐团

    题目传送门 分析 前置知识:\(\sum_{d|n}\mu(d)=[n==1]\),\(\sum_{d|n}\mu(d)\frac{n}{d}=\varphi(n)\) 把最小公倍数拆开可以得到 \[ ...

  9. Java 编程指南:入门,语法与学习方法

    Java 是什么? Java 是一种流行的编程语言,诞生于 1995 年.由 Oracle 公司拥有,运行在超过 30 亿台设备上.Java 可以用于: 移动应用程序(尤其是 Android 应用) ...

  10. SQL LIKE 运算符:用法、示例和通配符解释

    SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式.通常与LIKE运算符一起使用的有两个通配符: 百分号 % 代表零个.一个或多个字符. 下划线 _ 代表一个单个字符. 以下是LIKE运 ...