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

Содержание

21.1. Файл pg_hba.conf
21.2. Файл сопоставления имён пользователей
21.3. Методы аутентификации
21.4. Аутентификация trust
21.5. Аутентификация password
21.6. Аутентификация GSSAPI
21.7. Аутентификация SSPI
21.8. Аутентификация ident
21.9. Аутентификация peer
21.10. Аутентификация LDAP
21.11. Аутентификация RADIUS
21.12. Аутентификация по сертификату
21.13. Аутентификация PAM
21.14. Аутентификация BSD
21.15. Проблемы аутентификации

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

Примечание

Как можно узнать из Главы 22, PostgreSQL управляет правами и привилегиями, используя так называемые «роли». В этой главе под пользователем мы подразумеваем «роль с привилегией LOGIN».

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

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

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