Работа с PostgreSQL Proxy
Начиная с Indeed PAM 3.0 стало возможно открывать SQL-сессии через PostgreSQL Proxy. Это позволяет просматривать текстовый лог SQL-сессий, благодаря чему обеспечивается более полный контроль над сессиями и упрощается расследование инцидентов.
Настройка клиента СУБД
Часто у клиентов СУБД есть особенность работы: после подключения к серверу БД для выполнения SQL-запросов открывается отдельная сессия. В этом случае в PAM так же создается несколько сессий, что может доставлять неудобства при просмотре текстовых логов.
Чтобы SQL-запросы выполнялись в той же сессии, что и подключение к серверу БД, нужно настроить клиент СУБД. Ниже приведена информация, как это сделать на примере клиента DBeaver.
- Откройте DBeaver.
- В левой части экрана, в окне Базы данных (Database Navigator) найдите в списке доступных подключений нужный сервер, нажмите на него левой кнопкой мыши и нажмите на клавиатуре F4.
- В открывшемся окне перейдите на вкладку Метаданные (Metadata), поставьте флаг Настройки базы <имя сервера> (Datasource <servername> settings).
- Для параметра Открывать отдельное соединение для чтения метаданных (Open separate connection for metadata read) укажите опцию Never из выпадающего списка.
- Перейдите на вкладку Редактор SQL (SQL Editor).
- Для параметра Открывать отдельное соединение для каждого редактора (Open separate connection for each editor) укажите опцию Never из выпадающего списка.
- Сохраните изменения нажатием кнопки OK.
- Повторите все перечисленные действия для всех ваших серверов БД.
Указание адреса PostgreSQL Proxy в PAM
- Перейдите в раздел Конфигурация → Системные настройки.
- В секции PostgreSQL Proxy заполните поле Адрес PostgreSQL Proxy.
Открытие сессии через PostgreSQL Proxy
Описано в руководстве пользователя, в пункте Подключение к ресурсу через PostgreSQL Proxy.
Просмотр текстовых логов SQL-сессии
Чтобы просмотреть текстовые логи сессии, открытой через PostgreSQL Proxy:
- Откройте раздел Активные сесии.
- Выберите нужную сессию.
- Нажмите Текстовый лог.
Учитывайте, что разные SQL-клиенты могут по-разному сохранять текст SQL-запросов. Например, psql вырезает комментарии из SQL-запросов, а pgAdmin оставляет.
Текстовый лог, отображаемый в профиле сессии, не обновляется автоматически. Для получения актуального текстового лога, требуется периодически нажимать Обновить.
В текстовом логе не сохраняются результаты запросов.
В текстовый лог попадают только исходящие SQL-запросы (клиент → сервер). Исходящие запросы (сервер → клиент) не попадают.
Ограничения
- Двухфакторная аутентификация поддерживается только для инсталляций с аутентификацией через RADIUS, где вторым фактором является подтверждение запроса в приложении. Для инсталляций с аутентификацией через PAM параметр Использовать двухфакторную аутентификацию будет игнорироваться, то есть второй фактор запрашиваться не будет, подключение откроется без него.
- Подтверждение администратором открытия сессии не поддерживается. Отключите параметр Открытие сессии требует подтверждения администратора PAM в разделе Политики → Сессии, иначе открыть SQL-сессию будет невозможно.
- Указание причины открытия сессии поддерживается частично. Если включен параметр Требовать указать причину подключения в политике сессии, то пользователям потребуется вводить причину в то же поле, где имя учетной записи. Подробная информация в пункте Подключение к ресурсу через PostgreSQL Proxy.