Правовое основание, согласие и хранение — Примеры
Пример 1 — Одна строка на категорию данных
Команда составляет запись о приватности и написала одну строку: «данные пользователя — назначение: работа сервиса — основание: согласие — хранение: бессрочно». Такое предложение нельзя ни проверить аудитом, ни исполнить. Перепишите его в таблицу, которая команде действительно нужна, с основанием и сроком для каждой категории.
Черновик записи
система: клиентский портал
данные: данные пользователя
зачем: работа сервиса
основание: согласие
хранение: бессрочно
Решение
Данные Назначение Основание Хранилище Срок хранения
email, имя аккаунт + вход договор users срок жизни аккаунта
IP-адрес защита от атак законный интерес логи 30 дней
маркетинговые предпочтения рассылки согласие users до отзыва
история заказов исполнение договор orders нормативный минимум
Таблица и есть артефакт; всё остальное — текст согласия, задачи удаления, решения о доступе — выводится из неё. Один и тот же человек теперь встречается в четырёх строках с разными основаниями и разными сроками, и в этом суть: согласие — правильный ответ только для маркетинговой строки, а данные, без которых сервис не работает, относятся к договору. Обычная ошибка — одна строка на систему: она скрывает необоснованные поля, и срок хранения к ней так и не привязывается.
Пример 2 — Флаг согласия, который ничего не отвечает
Форма регистрации хранит marketing_opt_in = true и больше ничего. Когда пользователь спрашивает, на что и когда он согласился, поддержке нечего ответить, а отзыв нельзя привязать к цели. Замените логическое значение записью, которую команда сможет защитить.
-- таблица users, как она построена
marketing_opt_in boolean not null default false
Решение
-- таблица consent, одна строка на цель
create table consent (
user_id bigint not null,
purpose text not null,
granted_at timestamptz not null,
text_version text not null,
withdrawn_at timestamptz
);
-- отзыв — это update, а не новое письмо в поддержку
Хранение даты, цели и версии показанного текста превращает «согласились ли они?» в факт, и согласие на рассылки больше не подменяет согласие на что-то другое. Отзыв обновляет строку, поэтому переключатель, поставивший согласие, снимает его. Обычная ошибка — оставить логическое значение и приписать рядом пункт политики; политика не может ответить на вопрос, который схема никогда не умела хранить.