Аутентификация и шифрование
Структура файла 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 должна полностью умещаться в одной строке. Перенос записей на другую строку запрещен.