ClickHouse生产运维系列[部署篇]-04_ClickHouse创建数据库和用户及授予权限

一、前言

在前面的章节里,我们已经次用ckman 安装部署了两套ClickHouse集群。本节我们将在其中一套集群上演示创建用户角色、创建数据库和用户,并为用户赋予不同权限。以便为后面导入数据验证测试以及为chproxy调整配置文件做准备。

二、创建用户角色

为更好管理不同用户角色,建议为不同的角色先创建对应的配置文件。

1)创建配置文件

 

-- 执行如下SQL CREATE PROFILE IF NOT EXISTS 'database_admin' ON CLUSTER prod_cd_cluster;

image20240308140144893.png

2)创建角色

 

CREATE ROLE IF NOT EXISTS read_write ON CLUSTER prod_cd_cluster SETTINGS PROFILE 'database_admin';

image20240308141619433.png

也可以通过ClickHouse自带的客户端工具进行上述命令操作。

ClickHouse 客户端自带工具登录方式为: IP:8123/play,使用浏览器登录。

如下演示创建一个管理只读用户的配置文件,并在该配置文件下创建一个只读用户,演示操作如下:

创建配置文件:

 

CREATE PROFILE IF NOT EXISTS 'database_user' ON CLUSTER prod_cd_cluster;

image20240311164157619.png

  • 选择default账号,密码为创建CK集群时设置的密码
  • 命令后跟 on cluster cluster_name (如果不添加cluster_name,数据不会创建在整个集群而只是某个节点)
  • 点击Run执行命令

创建只读用户:

 

CREATE ROLE IF NOT EXISTS read_only ON CLUSTER ck_replica1 SETTINGS PROFILE 'database_user' ON CLUSTER prod_cd_cluster;

image20240311164754121.png

三、创建数据库

 

CREATE DATABASE IF NOT EXISTS ckdb ON CLUSTER prod_cd_cluster;

image20240311165047999.png

可以通过show databases SQL命令来查看当前集群所有数据库信息,如下所示:

 

-- 查询数据库信息 show databases

image20240311165336431.png

也可以通过show create database xxx 命令来查看某个数据库的具体信息,如下所示:

 

-- 查询某个数据库信息 SHOW CREATE DATABASE ckdb;

image20240311165644416.png

通过以上SQL可以查看数据库创建语句及库引擎默认为Atomic。

**补充信息:**如果希望创建一个非Atomic库引擎数据库,可以通过如下SQL语句创建,并且要确认该引擎是否被当前CK版本所支持。

 

CREATE DATABASE IF NOT EXISTS cktestdb ON CLUSTER prod_cd_cluster ENGINE = Ordinary;

如果使用的库引擎不被当前数据库默认支持,会报如下错误:

“10.110.5.136”, 9000, “336”, “Code: 336. DB::Exception: Ordinary database engine is deprecated (see also allow_deprecated_database_ordinary setting). (UNKNOWN_DATABASE_ENGINE) (version 22.8.5.29 (official build))”, “0”, “0”]Code: 336. DB::Exception: There was an error on [10.110.5.135:9000]: Code: 336. DB::Exception: Ordinary database engine is deprecated (see also allow_deprecated_database_ordinary setting). (UNKNOWN_DATABASE_ENGINE) (version 22.8.5.29 (official build)). (UNKNOWN_DATABASE_ENGINE) (version 22.8.5.29 (official build))

四、创建用户及授权

为更好的管理数据库权限,建议为用户创建不同的角色用户,比如读写和只读权限用户。

CK可以有多种方式创建用户,生产环境建议使用更安全的密码认证方式,具体操作如下。

1)生成用户SHA256_HASH密码

 

## 选择CK集群任一台服务器,参照如下命令生成SHA256_HASH密码 PASSWORD=$(base64 < /dev/urandom | head -c8); echo "{用户密码}"; echo -n "{用户密码}" | sha256sum | tr -d '-' --如示例如下 PASSWORD=$(base64 < /dev/urandom | head -c8); echo 'Ckman123456!'; echo -n 'Ckman123456!' | sha256sum | tr -d '-'

image20240311174320769.png

2)创建用户

 

-- 创建用户SQL语法 CREATE USER IF NOT EXISTS {用户名称} ON CLUSTER {集群名称} IDENTIFIED WITH SHA256_HASH BY {用户密码} DEFAULT ROLE {角色} DEFAULT DATABASE {默认数据库}; -- 创建读写用户 CREATE USER IF NOT EXISTS ck_writer ON CLUSTER 'prod_cd_cluster' IDENTIFIED WITH SHA256_HASH BY 'bd9734cd2335507ead689b8a61f75757bd00331f349d3296c96fc69cd562c89a' DEFAULT ROLE read_write DEFAULT DATABASE ckdb; -- 创建只读用户 CREATE USER IF NOT EXISTS ck_reader ON CLUSTER 'prod_cd_cluster' IDENTIFIED WITH SHA256_HASH BY 'bd9734cd2335507ead689b8a61f75757bd00331f349d3296c96fc69cd562c89a' DEFAULT ROLE read_only DEFAULT DATABASE ckdb;

操作过程及结果如下图:

image20240312152914614.png

image20240312150337036.png

补充信息:

可以采用如下方法创建一个可以允许从任何节点访问CK数据库的用户,如下所示:

 

CREATE USER test IDENTIFIED WITH plaintext_password BY 'test' HOST ANY ON CLUSTER prod_cd_cluster; -- `IDENTIFIED WITH plaintext_password`表明使用明文密码进行认证

可以通过如下方式来查看创建的用户信息,如下所示:

  • 方式一:
 

show create user test;

image20240312150729022.png

  • 方式二
 

select * from system.users where name = 'test';

image20240311172238800.png


3)分配用户权限

 

-- 分配权限语法如下 GRANT ON CLUSTER {集群名称} {权限,多个权限用逗号分隔} ON {数据库名称}.* TO {用户名称}; -- 分配读写用户权限 GRANT ON CLUSTER 'prod_cd_cluster' SHOW, SELECT, INSERT, ALTER, CREATE TABLE, CREATE VIEW, CREATE DICTIONARY, DROP DICTIONARY, DROP TABLE, DROP VIEW, TRUNCATE, OPTIMIZE, dictGet ON ckdb.* TO ck_writer;

image20240312153232692.png

 

-- 分配只读用户权限 GRANT ON CLUSTER 'prod_cd_cluster' SHOW, SELECT, OPTIMIZE, dictGet ON ckdb.* TO ck_reader;

image20240312153251253.png


4)查询用户权限

 

-- 查询用户权限语法如下 SHOW GRANTS FOR {用户名称} SHOW GRANTS FOR ck_writer,ck_reader;

image20240312153524247.png

5)修改用户权限

因为ClickHouse不同版本语法不同,亦或是某些SQL特性未在某个ClickHouse版本中支持。

对于ClickHouse修改用户权限,可以采用先对权限进行回收,然后执行grant授权。

比如当前使用的ClickHouse 22.8.5.29不支持使用 WITH REPLACE OPTION来修改权限,如下示例所示。

 

GRANT SELECT, INSERT, UPDATE, DELETE ON CLUSTER 'prod_cd_cluster' ON db1.* TO ck_reader WITH REPLACE OPTION;

image20240312162954103.png

欢迎您关注我的公众号【尚雷的驿站】


公众号:尚雷的驿站
CSDN :https://blog.csdn.net/shlei5580
墨天轮:https://www.modb.pro/u/2436
PGFans:https://www.pgfans.cn/user/home?userId=4159


image.png

  • 27
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 天融信运维安全审计系统用户手册是为了帮助用户更好地使用该系统而编写的指导文档。该系统是一款针对企业网络安全进行审计和管理的工具。 用户手册v3.0提供了详细的系统安装和配置步骤,以及系统的基本功能和操作指南。通过阅读用户手册,用户可以了解系统的基本原理、技术要求以及必要的前提条件。同时,用户手册还包括了对系统各个模块的详细介绍,如日志审计、网络流量监测、事件告警等。 在用户手册中,还提供了一些常见问题的解答和故障排除指南,用户遇到问题时可以快速找到解决方法,提高系统的稳定性和可靠性。 除了基本功能的介绍,用户手册还提供了一些高级功能的使用指南,如安全策略配置、权限管理、报表定制等。用户可以根据自身需求,灵活地配置和管理系统。 用户手册还包括了一些最佳实践和安全建议,帮助用户提高企业网络安全的水平。用户可以通过按照用户手册中的步骤和建议,优化系统配置,提升网络安全性。 综上所述,天融信运维安全审计系统用户手册v3.0是一份非常重要的文档,它提供了对系统的全面介绍和详细操作指南,帮助用户更好地使用该系统,提高企业网络安全水平。 ### 回答2: 天融信运维安全审计系统-用户手册v3.0是一份面向用户的指导手册,用于帮助用户了解和正确使用该系统。该手册分为多个章节,依次介绍系统的安装、配置、功能及常见问题解答等内容。 在手册中,首先介绍了系统的概述和功能特点,以及系统所需的硬件和软件环境要求。用户可根据手册指导进行系统的安装,包括准备安装介质、运行安装程序、设置安装选项等。 接下来,手册详细介绍了系统的配置步骤,包括网络配置、存储配置、数据库配置等。用户可根据手册说明,按照实际情况进行相关配置操作。 随后,手册详细介绍了系统的各项功能,如日志审计、安全事件分析、入侵检测等。用户可以通过阅读手册,了解系统功能的操作步骤和功能特点,有效提升系统的运维能力。 此外,手册还提供了系统的常见问题解答,解答了一些用户在使用过程中可能遇到的问题和疑难情况。用户可通过查询手册,快速解决问题,提高系统的稳定性和安全性。 总之,天融信运维安全审计系统-用户手册v3.0是一个详细的指导手册,帮助用户全面了解和正确使用该系统。通过阅读手册,用户可以迅速上手,运维系统,提升安全性和稳定性。 ### 回答3: 天融信运维安全审计系统-用户手册v3.0 是一份详细的使用指南,用于指导用户在使用该系统时的操作和功能了解。用户手册包含系统概述、安装、配置、操作和故障排除等多个方面的内容。 首先,用户手册中给出了天融信运维安全审计系统的概述,介绍了该系统的设计目标和主要功能,帮助用户了解系统的作用和优势。 接着,用户手册详细说明了安装过程,包括硬件要求、操作系统要求以及安装步骤。用户可以根据手册中提供的指导完成系统的安装。 配置章节则介绍了系统的配置流程,包括网络设置、数据存储设置、日志设置等。通过按照用户手册中的步骤进行配置,用户可以使系统根据自身需求进行优化设置。 操作章节解释了系统的常用功能和操作方法,包括登录、查看审计日志、生成报表等。用户可以根据手册中的操作指引,轻松地完成各项操作,提高审计工作效率。 此外,用户手册还包括了故障排除章节,针对可能出现的常见问题和故障,给出了相应的解决方法,帮助用户避免和解决使用过程中的问题。 总之,天融信运维安全审计系统-用户手册v3.0 是一份全面且易于理解的使用指南,通过阅读手册,用户可以全面了解系统的各项功能和操作方法,能够顺利使用该系统,并且能够解决可能出现的故障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值