هذا الدليل غير قابل للتطبيق على ClickHouse Cloud.
في هذا الدليل، سنتعلّم كيفية إزالة المستخدم default من ClickHouse Server.
يمكننا القيام بذلك من خلال إنشاء ملف YAML (لنُسمِّه remove_default_user.yaml) يتضمن المحتوى التالي
users:
default:
"@remove": remove
يعتمد موقع هذا الملف على طريقة تثبيت ClickHouse.
تشغيل البرنامج التنفيذي مباشرةً
إذا كنا نشغّل ClickHouse مباشرةً (clickhouse server)، فعلينا وضع الملف ضمن الدليل config.d.
عند تشغيل خادم ClickHouse:
سيظهر السطر التالي في السجلات:
{} <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.
إذا كنا نشغّل ClickHouse عبر Docker أو كان مثبّتًا على جهازنا، فعلينا وضع الملف بدلًا من ذلك في الدليل /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'.