Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.
Безопасность базы данных распределена по нескольким уровням:
Защита файлов баз данных. Все файлы, хранящиеся внутри базы данных,
защищены от чтения из любого бюджета, отличного от бюджета
суперпользователя Postgres.
Подключение клиента к серверу базы данных, по умолчанию,
разрешено только через локальные гнезда Unix, а не через гнезда TCP/IP.
Сервер должен запускаться с опцией
-i, чтобы разрешить подключаться нелокальным клиентам.
Подключения клиентов могут бы ограничены по IP адресу и/или имени пользователя,
через файл pg_hba.conf в PG_DATA.
Подключаемые клиенты могут быть аутентифицированы посредством внешних пакетов.
Каждому пользователю Postgres назначается имя пользователя(username) и (необязательно) пароль. По умолчанию,
пользователи не имеют право на запись в базу данных, которую создали не они.
Пользователи могут образовывать группы, и доступ к таблицам может ограничиваться на основании привилегий группs.
Аутентификация - это процесс, с помощью которого серверу и
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.