Руководство администратора по PostgreSQL
Предыдущий Следующий

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

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

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

  • Защита файлов баз данных. Все файлы, хранящиеся внутри базы данных, защищены от чтения из любого бюджета, отличного от бюджета суперпользователя 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.

Предыдущий Начало Следующий
Использование pg_options   Имена пользователей и группы


Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости