跳至主要内容

如何删除默认用户?

了解如何在运行 ClickHouse Server 时删除默认用户。

删除默认用户

注意

本指南不适用于 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'.
·2 分钟阅读
    © . This site is unofficial and not affiliated with ClickHouse, Inc.