更新时间:2025-07-24 GMT+08:00

使用客户端连接ClickHouse安全集群

您可以通过创建集群开启加密通道,实现数据加密传输。此章节介绍如何开通ClickHouse安全通道。

使用限制

  • 关闭https会给企业服务带来风险。
  • 创建集群开启https选项,后续无法关闭。
  • 创建集群未开启https选项,后续无法开启。
  • 在详情页面开启安全通道后,集群会重启。
  • 安全通道和非安全通道同时开启后无法关闭。

打开安全通道

  1. 登录表格存储服务管理控制台。
  2. 控制台左上角选择区域。
  3. 进入集群管理页面单击右上角的购买集群按钮,进入“购买集群”页面。
  4. 完成其他配置后,查看安全通道加密按钮是否开启,默认开启。

    也可在集群创建成功后在集群详情页打开安全和非安全通道按钮,此时安全通道和非安全通道同时开启。
    图1 安全通道

  5. 配置好参数,单击“立即购买”。
  6. 进入“规格详情”页面,确认集群规格订单信息,单击“提交”,成功提交集群创建任务,集群创建成功后,进入详情页面查看通道开启状态。

下载证书

  1. 集群创建成功后,进入集群详情页下载证书,单击集群信息模块“通道状态”最右侧的“下载证书”。
  2. 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。

    具体登录操作步骤请参见《弹性云服务器用户指南》中的“ SSH密码方式登录”。

  3. 配置证书。

    自定义证书路径,修改以下配置文件的证书存放路径,保存后将配置文件放在root路径下。
    <config>
        <secure>true</secure>
        <openSSL>
          <client>
            <caConfig>/etc/ssl/certificate.crt</caConfig>
          </client>
        </openSSL>
    </config>
    • <caConfig>/etc/ssl/certificate.crt</caConfig>指存放证书的路径。
    • root指的是配置文件的存放路径。
    • 证书下载限流,一分钟只能下载一次。

使用ClickHouse客户端连接集群

  1. 证书配置成功后,下载客户端。登录表格存储服务管理控制台,在左侧导航树单击“帮助”,然后在页面右侧单击“客户端下载”和“客户端校验文件”,下载客户端安装包和客户端校验文件。
  2. 安装客户端。

    1. 使用SSH登录工具,通过弹性IP远程登录到Linux弹性云服务器。

      具体登录操作步骤请参见《弹性云服务器用户指南》中的“ SSH密码方式登录”。

    2. 进入SSH工具的根目录。
      cd /
    3. 在根目录中新建一个文件夹。
      mkdir 文件夹名
    4. 进入新建的目录中。
      cd /文件夹名/
    5. 将客户端放在新建的目录下。
    6. 解压客户端。
      tar -zxf   客户端包名
    7. 解压“客户端校验文件”,与客户端解压在同一个目录下。
      1. 解压“客户端校验文件”。
        cd <客户端校验文件存放路径>
        tar -xzvf Client_sha256.tar.gz
      2. 获取客户端校验码。
        sha256sum ClickHouse_Client_23.3.tar.gz
      3. 查看客户端校验文件中的校验码,并与客户端校验码进行对比。如果对比结果一致,代表客户端未被篡改,如果对比结果不一致,则代表客户端篡改。
        less ClickHouse_Client_23.3.tar.gz.sha256
    8. 进入clickhouse文件夹加载so。
      sh install.sh
    9. 进入bin目录,加权限。
      cd bin/

      加权限。

      chmod 700 clickhouse

  3. 连接集群。

    ./clickhouse client --host 集群内网地址 --port 9440 --user admin --password password --secure --config-file /root/config.xml

ClickHouse入门使用

  1. 创建数据库。
    create database demo;
  2. 使用数据库。
    use demo;
  3. 查看当前使用数据库。
    select currentDatabase();
  4. 创建数据表。
    create table demo_t(uid Int32,name String,age UInt32,gender String)engine = TinyLog;
  5. 查看表结构。
    desc demo_t;
  6. 插入数据。
    insert into demo_t values(1,'Candy','23','M'),(2,'cici','33','F');
  7. 查看表。
    select * from demo_t;
  8. 查看数据库和表。
    • 查看数据库。
      show databases;
    • 查看表。
      show tables;
  9. 删除数据库和表。
    • 删除表。
      drop table demo_t;
      • 删除数据表前,需确认此数据表是否应用中,以免引起不必要的麻烦。
      • 删除数据表后可在24小时内恢复,超过24小时无法恢复。恢复命令如下:
        set allow_experimental_undrop_table_query = 1;
        UNDROP TABLE 数据表名;
    • 删除数据库。
      drop database demo;