docs(dds): уточнён публичный контракт события

- Зачем:
  - Закрепить реалистичную границу доступа BI и убрать двусмысленность для неизвестных кодов.
- Что:
  - Пояснены доступ к ODS, пояс счётчика и порядок DDL.
  - Проверка равенства строк отделена от размера конкретной загрузки.
- Проверка:
  - `git diff --check`.
  - `make config-test` не стартовал: Snap требует работающий `snapd.apparmor`.
This commit is contained in:
ddadmin committed 2026-08-25 17:53:22 -04:00
1 parent b8a5a6171c
commit ae5bd31dbd
4 files changed
+22 -13

No files matched your search

+8 -6
View File
@@ -53,11 +53,13 @@
Стенд учит не администрированию доступа, а чтению отказа в правах: человек
должен узнать в бою картину, которую видел здесь, и понимать, чего просить.
Отсюда критерий отбора — модель должна читаться из текста ошибки, а не из
описания. Поэтому пользователей мало, имена у них говорящие, а `bi` отделён от
STG и от записи. Один пользователь может сверить всю цепочку DM → DDS → ODS,
не получая доступа к сырью и изменению данных. Справочники видны всем читателям
и никому на запись: зона входит в хранилище сбоку, и её содержимым владеет файл
репозитория, а не слой.
описания. Поэтому пользователей мало, имена у них говорящие. В бою BI обычно
читает витрины и модельный слой. ODS ему могут открыть для расследования или
сверки. Стенд оставляет этот доступ постоянным, но сохраняет две крупные
границы: `bi` отделён от STG и от записи. Один пользователь может сверить всю
цепочку DM → DDS → ODS, не получая доступа к сырью и изменению данных.
Справочники видны всем читателям и никому на запись: зона входит в хранилище
сбоку, и её содержимым владеет файл репозитория, а не слой.
Ограничить `bi` одними `_v` поверх `Distributed` можно только отдельным
маршрутом, учётной записью или копией данных. Эта механика не даёт нового урока.
@@ -200,7 +202,7 @@ ClickHouse через MCP Context7 (#114).
Расширение `bi_reader` проверено на живом стенде 25 августа 2026 года (#150):
- `SHOW GRANTS FOR bi_reader` содержит `SELECT` на ODS, DDS и DM;
- `bi` прочитал одинаковые 401185 строк из `ods.event_v` и `dds.event_v`;
- `bi` прочитал одинаковое число строк из `ods.event_v` и `dds.event_v`;
- чтение `stg.hits_raw_rep` завершилось ошибкой `ACCESS_DENIED`;
- представление над `Distributed` с `SQL SECURITY DEFINER` на удалённой ноде
сохранило исходного пользователя `bi`. Причина и отклонённые варианты