Файл .pgpass в домашнем каталоге пользователя может содержать пароли, используемые в тех случаях, когда для установления соединения требуется пароль (и если он не был указан иным способом). В операционной системе Microsoft Windows данный файл имеет имя
%APPDATA%\postgresql\pgpass.conf (где
%APPDATA% указывает на подкаталог Application Data в профиле пользователя). Кроме того, требуемый файл паролей может быть определен через параметр соединения passfile
или переменную окружения PGPASSFILE.
Данный файл должен содержать строки в следующем формате:
hostname:port:database:имя пользователя:password
(В файл можно добавить комментарий-напоминание, скопировав строку выше и
поставив перед ней символ #.)
Каждое из первых четырех полей может быть либо литеральным значением, либо
*, что соответствует любому значению. Будет использовано поле пароля из первой строки, соответствующей текущим параметрам соединения. (Таким образом, при использовании подстановочных знаков более специфичные записи следует располагать в начале.) Если запись должна содержать : или
\, экранируйте этот символ с помощью \.
Значение поля имени хоста сопоставляется с параметром соединения host параметру подключения, если он указан, в противном случае — к hostaddr , если он указан; если ни один из параметров не задан, то выполняется поиск имени хоста localhost .
Поиск имени хоста localhost также выполняется в тех случаях, когда
используется соединение через сокеты домена Unix и
параметр host параметр соответствует libpqпути к каталогу сокетов по умолчанию.
На резервном сервере поле базы данных репликация
соответствует соединениям потоковой репликации, установленным с основным сервером. В иных случаях поле базы данных имеет ограниченную полезность, так как для всех баз данных в одном кластере у пользователей один и тот же пароль.
В операционных системах Unix права доступа к файлу паролей должны исключать любой доступ для группы или всех остальных пользователей; добиться этого можно с помощью команды
chmod 0600 ~/.pgpass. Если установлены менее строгие права доступа, данный файл будет проигнорирован. В ОС Microsoft Windows предполагается, что файл хранится в защищенном каталоге, поэтому специальная проверка прав доступа не выполняется.