IBCOURSES / СПРАВОЧНИК ИБ

pgAudit ROLE: кто изменял роли и привилегии

К ответу ↓

Класс ROLE предназначен для операций с ролями и привилегиями. Нужны включённый класс и контекст стандартного PostgreSQL log prefix, чтобы связать запись с сеансом и инициатором.

Например
Материалов с пояснениями: 94 · Записей реестров: 11 678

Уточнить поиск

События и журналы

Найдено: 84
Инструкция по проверке

pgAudit ROLE: кто изменял роли и привилегии

Класс ROLE предназначен для операций с ролями и привилегиями. Нужны включённый класс и контекст стандартного PostgreSQL log prefix, чтобы связать запись с сеансом и инициатором.

1. Установите профиль аудита

Запишите PostgreSQL major, версию и совместимую ветку pgAudit, экземпляр, базу и период. Для прошлого события нужен действовавший состав pgaudit.log и доступные серверные журналы. Текущее SHOW показывает нынешнюю настройку, а не историческую. Класс ROLE охватывает изменения ролей и привилегий; object auditing и session auditing имеют разные границы.

2. Отберите исходные записи

Ищите AUDIT-сообщения класса ROLE в сохранённом серверном журнале, сохраняя внешний префикс времени, базы, backend и пользователя. CSV-часть pgAudit разбирайте с учётом кавычек и запятых внутри statement; простое разделение по каждой запятой разрушит запись. Сузьте операцию GRANT/REVOKE либо изменение роли, но не запускайте её для проверки.

3. Прочитайте пример

В иллюстрации SESSION,12,1 и ROLE описывают тип аудита, номер statement/substatement и класс. GRANT SELECT касается учебной таблицы и роли demo_read; это предоставление права объекту роли, а не автоматически назначение членства между ролями. Пустое object-name в данной форме не удаляет объект из текста statement. PARAMETER=<not logged> означает отсутствие записанных параметров, а не отсутствие команды.

4. Разделите инициатора и результат

Номера statement локальны для backend и требуют связи с внешним серверным контекстом. Текст GRANT показывает исследуемое действие, но имя DB-role не устанавливает человека за пулом соединений. Дополнительно проверьте исход транзакции: регистрация statement и окончательно сохранённое право не равнозначны. Текущее состояние каталога тоже могло измениться после расследуемого момента.

5. Постройте цепочку изменения доступа

Сопоставьте statement с session_user/current_user, соединением приложения и заявкой на изменение. Выделите получателя, тип права, объект и доступный результат. Затем проверяйте связанные обращения к данным, если нужно установить использование выданного права. Разделите документально подтверждённый grant, эффективный доступ на конкретный момент и факт использования — это три самостоятельных вывода.

6. Если записи ROLE нет

Проверьте, был ли нужный класс включён, совпадает ли ветка расширения и куда уходил серверный журнал. Уточните ротацию, выбранную базу и период. SHOW pgaudit.log в новом сеансе не доказывает, что аудит прежнего пользователя был таким же. При отсутствии истории конфигурации или транзакционного контекста явно отметьте предел восстановления; не утверждайте, что права никто не менял.

Поля и область применения

Исходное полеСмысл и ограничения
AUDIT_TYPESESSION или OBJECT.
STATEMENT_ID / SUBSTATEMENT_IDНомера внутри сеанса; сами по себе не глобальны.
CLASSROLE в данном примере.
COMMANDКоманда, например GRANT.
STATEMENTТекст выполненного statement с правилами CSV escaping.
PARAMETERЗависит от pgaudit.log_parameter; может быть <not logged>.
PostgreSQL log prefixПользователь/база/backend/время при соответствующей настройке.

Примеры записей

Данные в примерах условные. Состав полей зависит от версии и настроек источника.

Пример фрагмента записи

Фрагмент журнала. Фрагмент audit payload без префикса PostgreSQL.

AUDIT: SESSION,12,1,ROLE,GRANT,TABLE,,GRANT SELECT ON TABLE public.demo TO demo_read,<not logged>

Команды и способы проверки

Укажите свой узел, путь к журналу и временной интервал. Требуемая среда указана рядом с командой.

PostgreSQL с установленным pgAudit · чтение текущих настроек/identity, не истории

SHOW pgaudit.log;
SELECT session_user, current_user;

Первоисточники

Запись исполнения не гарантирует commit: операция могла откатиться; аудит best-effort может терять записи.

Связанные материалы

Как пользоваться техническим справочником

Найдите порт, код ошибки, событие или источник журнала. Уточните протокол и систему, затем сверяйте значение, поля, примеры и первоисточники. Назначение порта не определяет фактическую службу, а одна запись не доказывает инцидент.

Материалы по разделам

События и журналы

Два ответа рядом

Сравнение источников

Сравнение показывает различия. События и поля разных систем не считаются эквивалентными.

Выберите службу

В списке — службы, доступные с текущими условиями. Число рядом — количество записей портов, а не программ на вашем узле.

Как искать в справочнике

Введите число, код, фрагмент сообщения или вопрос. Известный идентификатор поможет найти карточку; это не анализ самого инцидента.

  1. Введите номер, код, имя или фрагмент записи. Для портов можно использовать список: 80, 443, 8000–8010.
  2. Уточните поиск фильтрами. Все условия действуют одновременно. Числа в списках показывают, сколько материалов останется при выборе варианта.
  3. Службу выбирайте из каталога: поиск внутри списка помогает найти название, а кнопка «Выбрать» применяет его.
  4. Убирайте отдельные условия кнопкой × рядом с фильтром. «Сбросить фильтры» сохраняет текст поиска и текущий раздел.
  5. В карточке сверьте источник, версию и условия регистрации, затем откройте поля, примеры и первоисточник.

/ — перейти к поиску. Прямые ссылки открывают выбранную карточку в этом же справочнике.

Назначения портов и коды приведены по официальным реестрам. Версии, условия регистрации и ссылки на документацию указаны в карточках.

Избранное и недавние материалы хранятся в этом браузере. Запрос и фильтры сохраняются при возврате к выдаче и обновлении вкладки. Поиск работает локально.

Что есть в справочнике

От вопроса к свидетельствам: кто вошёл, что запустил, к каким данным обратился, что изменил и где искать следы.

Выберите область, чтобы посмотреть доступные источники и перейти к материалам.

Уточнить или исправить ответ

Скопируйте сообщение и отправьте его на mail@ibcourses.ru.