跳转到主要内容

删除 default 用户

本指南不适用于 ClickHouse Cloud。
本指南将介绍如何从 ClickHouse Server 中删除 default 用户。 为此,我们可以创建一个 YAML 文件 (例如命名为 remove_default_user.yaml) ,内容如下
users:
  default:
    "@remove": remove
该文件的位置取决于 ClickHouse 的安装方式。

直接运行可执行程序

如果我们直接运行 ClickHouse (clickhouse server) ,则需要将该文件放到 config.d 目录下。 当我们运行 ClickHouse Server 时:
clickhouse server
我们会在日志中看到下面这一行:
{} <Debug> ConfigProcessor: Merging configuration file 'config.d/remove_default_user.yaml'.
而且我们将无法通过 clickhouse client 连接:
ClickHouse client version 24.11.1.2557 (official build).
Connecting to localhost:9000 as user default.
Password for user (default):
Connecting to localhost:9000 as user default.
Code: 516. DB::Exception: Received from localhost:9000. DB::Exception: default: Authentication failed: password is incorrect, or there is no user with such name.

Docker 或本机安装

如果我们是通过 Docker 运行 ClickHouse,或者已将其安装在本机上,则需要改为将该文件放在 /etc/clickhouse-server/users.d 目录下。 因此,如果是使用 Docker 运行,就可以将前面创建的 config.d 目录挂载到 /etc/clickhouse-server/users.d
docker run \
  -v ./config.d:/etc/clickhouse-server/users.d \
  -p 8123:8123 -p9000:9000 \
  clickhouse/clickhouse-server:24.12
Merging configuration file '/etc/clickhouse-server/config.d/docker_related_config.xml'.
Logging trace to /var/log/clickhouse-server/clickhouse-server.log
Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log
然后,我们可以搜索服务器日志,确认是否已采集到它:
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Command}}"
CONTAINER ID   IMAGE                                NAMES               COMMAND
383e8ed89431   clickhouse/clickhouse-server:24.12   trusting_rosalind   "/entrypoint.sh"
docker exec -it trusting_rosalind grep "users\.d" /var/log/clickhouse-server/clickhouse-server.log
我们应该会看到下面这一行:
{} <Debug> ConfigProcessor: Merging configuration file '/etc/clickhouse-server/users.d/remove_default_user.yaml'.
最后修改于 2026年6月10日