Deepseek-ClickHouse数据库的安全策略

简介

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>
    1
    /var/log/clickhouse-server/query.log
    </query_log>

  • 开启操作日志 : 在 config.xml 中配置操作日志:

    <operation_log>
    1
    /var/log/clickhouse-server/operation.log
    </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
相关推荐
leagsoft_100312 分钟前
从“策略看不清”到“风险可收敛”:某高端精密制造企业的网络安全策略治理实践
网络·web安全·制造
疯狂打码的少年18 分钟前
【软件工程】需求工程:需求获取与需求分析
数据库·笔记·软件工程·需求分析
Database_Cool_19 分钟前
阿里云 PolarDB-X vs TiDB 分布式数据库选型指南
数据库·分布式·阿里云·tidb
数据库小学妹20 分钟前
分布式数据库架构怎么选?三种路线对比+迁移避坑指南
数据库·分布式·分布式数据库·数据库架构·数据迁移·数据库选型
桑榆肖物38 分钟前
在 .NET MAUI 里接入 PP-OCRv6 文本检测实现查找并点击
数据库·redis·.net·maui
味悲1 小时前
SQL注入从入门到实战
数据库·sql·安全
KaMeidebaby1 小时前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法
复园电子4 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
AI-好学者11 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
其实防守也摸鱼12 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式