Deepseek-ClickHouse数据库的安全策略

news/2025/2/26 13:22:44

简介

ClickHouse是一个高性能的列式数据库管理系统,旨在处理大量数据的实时分析和查询。它的设计目标是提供快速、高效的查询性能,同时保证数据的安全性和可靠性。近期,DeepSeek的ClickHouse数据库因未经身份验证的访问漏洞,意外暴露了超过100万行的敏感数据。

安全策略

1. 用户权限管理

  • 创建用户
CREATE USER username IDENTIFIED WITH plaintext_password BY 'password';	//创建一个用户名为 username 的用户,并设置密码。
  • 授予权限
GRANT SELECT, INSERT ON database.* TO username;	//为用户 username 授予对 database 数据库下所有表的 SELECT 和 INSERT 权限。
  • 撤销权限
REVOKE SELECT, INSERT ON database.* FROM username;	//撤销用户 username 对 database 数据库下所有表的 SELECT 和 INSERT 权限。
  • 删除用户
DROP USER username;

2. 加密

  • 启用 TLS/SSL: 在 clickhouse-server 配置文件 config.xml 中启用 TLS(SSL)加密:
<tcp_port_secure>9440</tcp_port_secure>
<https_port>8443</https_port>
<secure_connection_timeout>60</secure_connection_timeout>
<listen_host>::</listen_host>
<ssl_certificate>/path/to/certificate.crt</ssl_certificate>
<ssl_private_key>/path/to/private.key</ssl_private_key>
<ssl_ca_certificate>/path/to/ca.crt</ssl_ca_certificate>
  • 启用数据加密(加密磁盘数据): 数据加密通常通过操作系统或存储层级(如 LUKS 或 BitLocker)来实现。ClickHouse 本身不提供直接加密数据存储的功能,但可以配合系统级加密技术来加密数据目录。

3. 审计日志

  • 开启查询日志: 在 config.xml 中配置查询日志:
<query_log>
    <enabled>1</enabled>
    <path>/var/log/clickhouse-server/query.log</path>
</query_log>
  • 开启操作日志: 在 config.xml 中配置操作日志:
<operation_log>
    <enabled>1</enabled>
    <path>/var/log/clickhouse-server/operation.log</path>
</operation_log>

4. 限制查询行为 (防止恶意查询)

  • 限制查询执行时间: 你可以限制查询的最大执行时间:
SET max_execution_time = 60;  -- 限制查询执行时间不超过60秒
  • 限制查询内存使用: 限制每个查询的最大内存使用:
SET max_memory_usage = 10000000000;  -- 限制最大内存使用为 10GB
  • 限制查询返回行数: 限制查询最多返回的行数:
SET max_result_rows = 10000;  -- 限制每个查询最多返回 10000 行

5. 访问限制

  • 限制 IP 地址访问: 在 config.xml 中配置允许访问的 IP 地址范围:
<listen_host>127.0.0.1</listen_host>  -- 仅允许本地连接
  • 配置用户访问限制: 如果只想允许特定 IP 地址的用户访问数据库,可以在用户配置时限制该用户的 IP 地址:
CREATE USER username IDENTIFIED WITH plaintext_password BY 'password' HOST '192.168.1.%';

6. 其他安全配置

  • 关闭 HTTP 接口: 如果不需要 HTTP 接口,可以在 config.xml 中禁用:
<http_port>0</http_port>

或者完全禁用 HTTP 接口:

<http_secure_port>0</http_secure_port>
  • 禁用默认数据库: 可以配置 ClickHouse 禁用默认数据库(如 default)的访问权限:
REVOKE ALL ON default.* FROM username;

7. 配置加密备份

ClickHouse 本身不直接提供加密备份的功能,可以使用外部工具(例如 GPG、OpenSSL等)加密备份文件。

//使用 GPG 加密
clickhouse-backup create
gpg --symmetric --cipher-algo AES256 backup.tar.gz

http://www.niftyadmin.cn/n/5868755.html

相关文章

kubernetes学习笔记(3)——存储抽象

挂载 nfs是kubernetes存储层可选其中一种网络存储方式。 原生方式数据挂载 apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginx-pv-demoname: nginx-pv-demo spec:replicas: 2selector:matchLabels:app: nginx-pv-demotemplate:metadata:labels:app: nginx-p…

Golang学习笔记_38——享元模式

Golang学习笔记_35——代理模式 Golang学习笔记_36——装饰器模式 Golang学习笔记_37——外观模式 文章目录 享元模式&#xff08;Flyweight Pattern&#xff09;详解一、核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、特点分析三、适用场景1. 文字编辑器2. 游戏开发3. …

R 语言科研绘图第 27 期 --- 密度图-分组

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…

从 Linux 服务器到前端到网关到后端业务逻辑的分析

前言 在现代 Web 应用程序的架构中&#xff0c;一个完整的请求处理流程涉及多个组件&#xff0c;涵盖了用户界面、服务器环境、网关层和后端业务逻辑。理解这一过程有助于优化系统性能、提高用户体验&#xff0c;并确保系统的可维护性和可扩展性。本文将详细分析从 Linux 服务…

机器学习(部分算法、模型)

一、KNN 算法 原理 K-近邻算法&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;,根据K个邻居样本的类别来判断当前样本的类别; 如果一个样本在特征空间中的k个最相似(最邻近)样本中的大多数属于某个类别&#xff0c;则该类本也属于这个类别 比如: 有10000个样…

Android开发奇葩bug:布局宽高不自动自适应了

Android开发奇葩bug:布局宽高不自动自适应了 写着写着约束布局ConstraintLayout的子控件一初始化过宽高后&#xff0c;后面就算你内容再多&#xff0c;高已经变了&#xff0c;但是它没生效。不管怎么检查代码够感觉没错。 奇怪了 差点我界面就打算重写了。 解决方案&#xff…

Spring 源码硬核解析系列专题(五):Spring Boot 自动装配的原理

在前四期及扩展篇中,我们深入探讨了 Spring 的 IoC 容器、Bean 创建、AOP 和事务管理,这些是 Spring 框架的基石。而 Spring Boot 作为 Spring 的进化版,通过自动装配大幅简化了开发流程。本篇将聚焦 Spring Boot 的自动装配机制,揭秘其如何通过源码实现“约定优于配置”的…

docker部署GPU环境

使用 Docker 部署 GPU 环境涉及到几个关键步骤,以下是详细步骤: 1. 安装 NVIDIA 驱动程序 确保你的系统已经安装了 NVIDIA GPU 驱动。这是使用 GPU 的前提条件。 2. 安装 Docker 和 nvidia-container-toolkit 首先,确保你已经安装了 Docker。然后,安装 NVIDIA Containe…