You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在default用户权限不足时,配置ClickHouse的安全连接与密码?

解决ClickHouse默认用户权限不足并配置连接安全

一、修复default用户权限不足问题

当前default用户缺少用户管理权限,需通过修改ClickHouse配置文件提升权限:

  • 进入ClickHouse用户配置目录,通常为/etc/clickhouse-server/users.d/,若该目录不存在,直接编辑主配置文件/etc/clickhouse-server/config.xml的<users>节点。
  • 在users.d目录下创建或编辑配置文件(如default_admin.xml),写入以下内容:
<yandex>
  <users>
    <default>
      <!-- 开启用户管理权限,让default拥有创建/管理用户的全部权限 -->
      <access_management>1</access_management>
    </default>
  </users>
</yandex>
  • 保存配置后,重启ClickHouse服务:
sudo systemctl restart clickhouse-server
  • 重新用clickhouse-client连接,此时执行SHOW USERS;或创建用户的语句即可正常运行。

二、创建带密码的超级用户

权限生效后,执行以下SQL创建超级用户并授予全量权限:

-- 创建带SHA256加密密码的用户
CREATE USER IF NOT EXISTS someuser
IDENTIFIED WITH sha256_password BY 'your_strong_password';

-- 授予该用户所有权限,并允许其给其他用户授权
GRANT ALL PRIVILEGES ON *.* TO someuser WITH GRANT OPTION;

三、强化连接安全的配置步骤

  1. 给default用户设置强密码
    即使暂时保留default用户,也要避免无密码访问:
ALTER USER default IDENTIFIED WITH sha256_password BY 'your_default_strong_password';
  1. 限制用户访问IP
    通过配置文件添加IP白名单,仅允许可信IP访问用户:
    在users.d目录下创建user_network_restrictions.xml,内容如下:
<yandex>
  <users>
    <someuser>
      <networks>
        <ip>127.0.0.1</ip>
        <ip>192.168.1.0/24</ip> <!-- 替换为你的可信内网段 -->
      </networks>
    </someuser>
    <default>
      <networks>
        <ip>127.0.0.1</ip> <!-- 仅允许本地访问default用户 -->
      </networks>
    </default>
  </users>
</yandex>
  1. 启用TLS加密连接
    编辑/etc/clickhouse-server/config.xml,开启加密端口和SSL配置:
<!-- 启用加密TCP端口 -->
<tcp_port_secure>9440</tcp_port_secure>
<!-- 启用加密HTTP端口 -->
<http_port_secure>8443</http_port_secure>

<openSSL>
  <server>
    <certificateFile>/path/to/your/certificate.pem</certificateFile>
    <privateKeyFile>/path/to/your/private_key.pem</privateKeyFile>
    <verificationMode>none</verificationMode>
    <loadDefaultCAFile>true</loadDefaultCAFile>
    <cacheSessions>true</cacheSessions>
    <disableProtocols>sslv2,sslv3</disableProtocols>
    <preferServerCiphers>true</preferServerCiphers>
  </server>
</openSSL>

保存后重启服务,连接时使用加密方式:

clickhouse-client --secure --user someuser --password your_strong_password
  1. 强制所有用户使用密码
    在配置文件中添加require_password参数,禁止无密码登录:
<users>
  <default>
    <require_password>1</require_password>
  </default>
  <someuser>
    <require_password>1</require_password>
  </someuser>
</users>

内容的提问来源于stack exchange,提问作者Lajos Arpad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:50:03