Глава 19. Аутентификация клиентского приложения

Содержание
19.1. Файл pg_hba.conf
19.2. Файл сопоставления имён пользователей
19.3. Методы аутентификации
19.3.1. Метод аутентификации trust
19.3.2. Метод аутентификации password
19.3.3. Аутентификация GSSAPI
19.3.4. Метод аутентификации SSPI
19.3.5. Метод аутентификации Ident
19.3.6. Аутентификация peer
19.3.7. Метод аутентификации LDAP
19.3.8. Аутентификация RADIUS
19.3.9. Аутентификация по сертификату
19.3.10. Метод аутентификации PAM
19.4. Проблемы аутентификации

При подключении к серверу базы данных, клиентское приложение указывает имя пользователя PostgreSQL, так же как и при обычном входе пользователя на компьютер с ОС Unix. При работе в среде SQL по имени пользователя определяется, какие у него есть права доступа к объектам базы данных (подробнее это описывается в Главе 20). Следовательно, важно указать на этом этапе, к каким базам пользователь имеет право подключиться.

Замечание: Как можно узнать из Глава 20, PostgreSQL управляет правами и привилегиями, используя термин "роли". В этой главе под пользователем мы подразумеваем "роль с привилегией LOGIN".

Аутентификация это процесс идентификации клиента сервером базы данных, а также определение того, может ли клиентское приложение (или пользователь запустивший приложение) подключиться с указанным именем пользователя.

PostgreSQL предлагает несколько различных методов аутентификации клиентов. Метод аутентификации конкретного клиентского соединения может основываться на адресе компьютера клиента, имени базы данных, имени пользователя.

Имена пользователей базы данных PostgreSQL не имеют прямой связи с пользователями операционной системы на которой запущен сервер. Если у всех пользователей базы данных заведена учётная запись в операционной системе сервера, то имеет смысл назначить им точно такие же имена для входа в PostgreSQL. Однако, сервер, принимающий удалённые подключения, может иметь большое количество пользователей базы данных, у которых нет учётной записи в ОС. В таких случаях не требуется соответствие между именами пользователей базы данных и именами пользователей операционной системы.