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 с ошибкой