README.md

    Подсистема аудита изменения данных для PostgreSQL.

    Является законченным, простым и достаточно универсальным средством, позволяющим быстро настроить протоколирование изменения данных в таблицах произвольной структуры.

    Подсистема аудита располгается а отдельной схеме “audit”, включает две таблицы для хранения информации, две триггерные функции, две процедуры для включения и отключения аудита и функцию вычисления дополнительной, специфичной для приложения, информации о транзакции.

    Таблица audit_context используется для сохранения данных о транзакции (контекста) при аудите изменения данных. Несколько событий аудита могут быть объединены одной транзакцией.

    Сохраняемая информация о транзакции содержит набор из типовых данных и настраиваемых данных.

    Типовые данные включают:

    • время начала транзакции audit_context_begin_ts;
    • время фиксации транзакции audit_context_clock_ts;
    • IP адрес клиента audit_context_client_ip;
    • пользователь при подключении audit_context_client_user.

    Настраивамые данные сохраняются в поле audit_context_app типа jsonb и вычисляются функцией audit_get_appctx.

    Таблица audit_block используется для сохранения информации об изменении данных.

    Сохраняемая информация содержит набор из типовых данных и настраиваемых данных.

    Типовые данные включают:

    • связанная транзакция audit_context_id, сслыка на таблицу audit_context;
    • время операции audit_block_ts;
    • IP адрес клиента audit_context_client_ip;
    • таблица, связанная с операцией audit_block_relation;
    • старые значения строки перед изменением audit_block_backup;
    • новые значения строки audit_block_update.

    Настраивамые данные (тэги) сохраняются в поле audit_block_tags типа jsonb.

    Поля audit_block_backup и audit_block_update могут содержать значение NULL и комбинация NULL-значений определяет тип операции:

    audit_block_backup audit_block_update Тип операции
    NULL {...} INSERT
    {...} {...} UPDATE
    {...} NULL DELETE
    NULL NULL TRUNCATE

    Процедура audit_attach_table с параметрами (target regclass, tags jsonb = NULL) используется для установки триггеров аудита на заданную таблицу. Установленный триггер может содержать дополнительную необязательную информацию, указываемую в параметре tags.

    Процедура audit_detach_table с параметром (target regclass) используется для снятия триггера у заданной таблицы.

    Описание

    Подсистема аудита изменения данных для PostgreSQL

    Конвейеры
    0 успешных
    0 с ошибкой