diff --git a/README.md b/README.md
index b32e471..fe91b6b 100644
--- a/README.md
+++ b/README.md
@@ -251,8 +251,9 @@ uv run --project generator python -m clickstream_generator batch \
- `default` остаётся служебным: им ходят проверки здоровья и скрипты внутри
контейнеров, но не приложения.
-Пользователи и роли объявлены в `infra/clickhouse/users.d/access.xml`. Пароли
-и общий секрет нод живут в `.env` и передаются в конфигурацию через окружение;
+Решение и его доводы — в [ADR 0007](docs/adr/0007-clickhouse-access.md).
+Пользователи и роли объявлены в `infra/clickhouse/users.d/access.xml`. Пароли и
+общий секрет нод живут в `.env` и передаются в конфигурацию через окружение;
Superset получает пароль `bi` тем же путём через штатную функцию настройки.
Значения для локального стенда есть в `.env.example`.
diff --git a/dags/test_clickhouse.py b/dags/test_clickhouse.py
index ab05aa9..91866ff 100644
--- a/dags/test_clickhouse.py
+++ b/dags/test_clickhouse.py
@@ -32,7 +32,8 @@ EXPECTED_TABLES = [
# У Airflow одно подключение — к ноде 1; второго ради пробника не заводят.
# Ноду 2 он читает через remote(), который не использует секрет из описания
# кластера, поэтому учётные данные etl передаются явно. Порт 9000 — нативный,
-# тогда как подключение Airflow ходит по HTTP на 8123.
+# тогда как подключение Airflow ходит по HTTP на 8123. Trace-журнал сервера
+# видит пароль: это допустимо только для локального учебного стенда.
NODES = (
("ноде 1", "system.tables"),
(
diff --git a/docs/adr/0007-clickhouse-access.md b/docs/adr/0007-clickhouse-access.md
index 151e116..c350832 100644
--- a/docs/adr/0007-clickhouse-access.md
+++ b/docs/adr/0007-clickhouse-access.md
@@ -63,11 +63,9 @@ DDS под ними, потому что так чаще всего и быва
данными по репликам, и там пароль вписан в каждую реплику каждого из трёх
кластеров.
-Довод опирается на измеренное лишь наполовину: колонку `user` видно на живом
-стенде, а вот что права `bi` на соседнем шарде подменяются правами общей
-учётки — вывод из неё, и он ждёт измерения (см. конец документа). Окажись
-вывод неверным, выбор секрета устоит по остальным основаниям, но перестанет
-быть единственно возможным.
+Довод подтверждён замером 13 августа 2026 года: на соседнем шарде сохранился
+пользователь-инициатор, поэтому там применились его права. Результат замера —
+в разделе «Что проверено».
**Файлы, а не SQL.** Объявленное файлом не оставляет состояния в томах:
повторный `make up` на живом стенде ничего не сдвигает, правка пароля
diff --git a/infra/clickhouse/users.d/access.xml b/infra/clickhouse/users.d/access.xml
index caa8f6c..c66c711 100644
--- a/infra/clickhouse/users.d/access.xml
+++ b/infra/clickhouse/users.d/access.xml
@@ -18,6 +18,7 @@
GRANT KAFKA ON *.*
+
GRANT SELECT ON dds.*
@@ -42,7 +43,6 @@
- default
default
GRANT etl_writer
@@ -50,7 +50,6 @@
- default
default
GRANT bi_reader
@@ -58,7 +57,6 @@
- default
default
GRANT analyst_reader