Глава 8. Безопасность

Оглавление
Аутентификация пользователя
Имена пользователей и группы
Контроль доступа
Функции и правила

Безопасность базы данных распределена по нескольким уровням:

Аутентификация пользователя

Аутентификация - это процесс, с помощью которого серверу и postmaster гарантируется, что запрашиваемый пользователем доступ к данным получит такой, кем фактически он/она себя заявил. Все пользователи, которые вызывают Postgres, проверяются на содержание в pg_user классе, чтобы удостовериться что они уполномочены это делать. Однако, проверка подлинности пользователя выполняется различными путями:

Из пользовательского shell

Клиент запускается из пользовательского shell, пользовательский (эффективный) user-id которого перед выполнением setuid заменяется на user-id пользователя postgres. Эффективный user-id используется как основа для проверки контроля доступа. Других аутентификаций не проводится.

Из сети

Если система Postgres собрана как рапспределённая, то доступ к порту Internet TCP процесса postmaster доступен для всех. DBA настраивает файл pg_hba.conf в каталоге PGDATA чтобы указать какая система аутентификации будет использоваться в зависимости от того какой хост установил соединение и к какой базе данных он хочет подключиться. Смотри pg_hba.conf(5), который описывает доступные системы аутентификации. Конечно, аутентификация, основанная на хосте, также небезопасна для Unix. Конечно, возможно определить захватчиков выдающих себя на первоначальный хост. Эти проблемы безопасности лежат вне пределов Postgres.