Иллюстрированный самоучитель по PostgreSQL

Аутентификация и шифрование

Структура файла pg_hba.conf

Конфигурационный файл pg_hba.conf содержит серию записей, определяющих параметры аутентификации клиентов с заданных хостов. Структура этого файла позволяет легко изменить его в соответствии с вашими требованиями.

В этом файле IP-адрес хоста (или интервал адресов) связывается с некоторой базой данных (или всеми базами) и одним из нескольких методов аутентификации. Для локальных подключений вместо внешнего IP-адреса используется обозначение local host или 127.0.0.1. Синтаксис файла pg_hba.conf должен удовлетворять ряду правил.

Во-первых, каждая строка файла содержит одну хостовую запись, при этом перенос записей на следующую строку не разрешен. Во-вторых, каждая запись содержит несколько полей, разделенных табуляциями или пробелами. Количество полей определяемой хостовой записи напрямую связано с ее типом. В листинге 8.3 приведены две записи; в первой поля разделены пробелами, а во второй – символами табуляции.

Листинг 8.3. Разделение полей в записях pg_hba.conf пробелами и табуляциями.

host all 127.0.0.1 255.255.255.255 trust
host all 127.0.0.1 255.255.255.255 trust

Файл pg_hba.conf может содержать комментарии, строки которых начинаются с символа #. Примеры комментариев приведены в листинге 8.4.

Листинг 8.4. Комментарии в файле pgjiba.conf.

# Book Town host entries
#
#
host all 127.0.0.1 255.255.255.255 trust

Хостовые записи, содержащиеся в файле pg_hba.conf, делятся на три общих типа (тип всегда задается первым словом каждой записи).

  • host. Записи типа host описывают удаленные хосты, которым разрешено подключаться к серверу PostgreSQL. Для правильной работы записей типа host серверный модуль PostgreSQL postmaster должен быть запущен с ключом – i (TCP/IP).
  • local. С семантической точки зрения запись типа local аналогична записи типа host. Тем не менее в ней не нужно указывать хосты, которым разрешено подключение. Запись local используется для клиентских подключений с того компьютера, на котором работает сервер PostgreSQL.
  • hostssl. Запись типа hostssl используется для указания хостов (удаленных или локальных), которым разрешено подключение к серверу PostgreSQL с использованием протокола SSL, обеспечивающего шифрование всех взаимодействий между клиентом и сервером. Протокол SSL должен поддерживаться как клиентом, так и сервером. Серверный процесс postmaster должен быть запущен с ключами – i (SSL) и – i (TCP/IP).

Примечание
Ключи, с которыми запускается процесс postmaster, описаны в главе 9
.

В листинге 8.5 приведен обобщенный синтаксис всех типов записей файла pg_hba.conf. Обратите внимание: все типы записей практически идентичны, разве что в записях типа local не нужно указывать IP-адрес или сетевую маску – подключение заведомо осуществляется с компьютера, на котором работает PostgreSQL.

Листинг 8.5. Синтаксис записей файла pg_hba.conf.

# Запись типа "local"
local база_дднных метод_аутентификации [ параметр ]
# Запись типа "host"
host база_данных 1р_адрес сетевая_наска метод_аутентификации [ параметр ]
# Запись типа "hostssl"
hostssl база_данных тр_адрес сетевая_маска метод_аутентификации [ параметр ]

Примечание
Помните, что каждая запись в файле pg_hba.conf должна полностью умещаться в одной строке. Перенос записей на другую строку запрещен
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.