-- ============================================================================ -- Права доступа к БД журнала аудита (мера ФСТЭК РСБ.3) -- Учётная запись приложения может ТОЛЬКО добавлять и читать записи журнала, -- но не изменять и не удалять их — это обеспечивает неизменяемость журнала. -- -- Применять в отдельной БД журнала (AUDIT_DB_DATABASE) под суперпользователем. -- PostgreSQL. -- ============================================================================ -- 1. Роль приложения для записи журнала (укажите пароль из секрет-хранилища). -- CREATE ROLE app_audit_writer LOGIN PASSWORD '***'; -- 2. Подключение и схема. GRANT CONNECT ON DATABASE app_audit TO app_audit_writer; GRANT USAGE ON SCHEMA public TO app_audit_writer; -- 3. Только добавление и чтение записей журнала (никаких UPDATE/DELETE/TRUNCATE). GRANT INSERT, SELECT ON TABLE audit_log TO app_audit_writer; GRANT USAGE, SELECT ON SEQUENCE audit_log_id_seq TO app_audit_writer; -- 4. Явный запрет изменения и удаления (на случай наследуемых прав). REVOKE UPDATE, DELETE, TRUNCATE ON TABLE audit_log FROM app_audit_writer; -- 5. Очистку по сроку хранения (команда audit:purge, мера РСБ.8) выполняет -- ОТДЕЛЬНАЯ привилегированная роль по регламенту, не роль приложения: -- CREATE ROLE audit_retention LOGIN PASSWORD '***'; -- GRANT DELETE ON TABLE audit_log TO audit_retention; -- -- В этом случае запускайте artisan audit:purge под соединением с этой ролью. -- 6. Рекомендация (РСБ.3): включить аудит самой СУБД и физически выносить -- журнал на отдельный сервер/хранилище с репликацией в SIEM.