33.15. Переменные окружения

Воспользовавшись следующими переменными окружения, можно задать значения параметров соединения по умолчанию, которые будут использоваться функциями PQconnectdb, PQsetdbLogin и PQsetdb, если никакое значение не будет задано вызывающим кодом. В частности, используя их, можно обойтись без жёсткого задания параметров соединения в простых клиентских приложениях.

  • PGHOST действует так же, как параметр соединения host.

  • PGHOSTADDR действует так же, как параметр соединения hostaddr. Эту переменную можно задать вместо или вместе с PGHOST для предотвращения поиска адреса в DNS.

  • PGPORT действует так же, как параметр соединения port.

  • PGDATABASE действует так же, как параметр соединения dbname.

  • PGUSER действует так же, как параметр соединения user.

  • PGPASSWORD действует так же, как параметр соединения password. Использовать эту переменную окружения не рекомендуется по соображениям безопасности, так как в некоторых операционных системах непривилегированные пользователи могут видеть переменные окружения процессов в выводе ps; вместо этого лучше использовать файл паролей (см. Раздел 33.16).

  • PGPASSFILE действует так же, как параметр соединения passfile.

  • PGCHANNELBINDING действует так же, как параметр соединения channel_binding.

  • PGSERVICE действует так же, как параметр соединения service.

  • PGSERVICEFILE задаёт имя личного файла пользователя с параметрами подключения к службам (см. Раздел 33.17). По умолчанию применяется имя файла ~/.pg_service.conf (или %APPDATA%\postgresql\.pg_service.conf в Microsoft Windows).

  • PGOPTIONS действует так же, как параметр соединения options.

  • PGAPPNAME действует так же, как параметр соединения application_name.

  • PGSSLMODE действует так же, как параметр соединения sslmode.

  • PGREQUIRESSL действует так же, как параметр соединения requiressl. Эта переменная окружения утратила актуальность с появлением переменной PGSSLMODE; если установить обе переменные, значение данной не возымеет эффекта.

  • PGSSLCOMPRESSION действует так же, как параметр соединения sslcompression.

  • PGSSLCERT действует так же, как параметр соединения sslcert.

  • PGSSLKEY действует так же, как параметр соединения sslkey.

  • PGSSLROOTCERT действует так же, как параметр соединения sslrootcert.

  • PGSSLCRL действует так же, как параметр соединения sslcrl.

  • PGSSLCRLDIR действует так же, как параметр соединения sslcrldir.

  • PGSSLSNI действует так же, как параметр соединения sslsni.

  • PGREQUIREPEER действует так же, как параметр соединения requirepeer.

  • PGSSLMINPROTOCOLVERSION действует так же, как параметр соединения ssl_min_protocol_version.

  • PGSSLMAXPROTOCOLVERSION действует так же, как параметр соединения ssl_max_protocol_version.

  • PGGSSENCMODE действует так же, как параметр соединения gssencmode.

  • PGKRBSRVNAME действует так же, как параметр соединения krbsrvname.

  • PGGSSLIB действует так же, как параметр соединения gsslib.

  • PGCONNECT_TIMEOUT действует так же, как параметр соединения connect_timeout.

  • PGCLIENTENCODING действует так же, как параметр соединения client_encoding.

  • PGTARGETSESSIONATTRS действует так же, как параметр соединения target_session_attrs.

Следующие переменные окружения позволяют задать поведение по умолчанию для каждого отдельного сеанса Postgres Pro. (См. также описание команд ALTER ROLE и ALTER DATABASE, позволяющих установить поведение по умолчанию для отдельного пользователя или отдельной базы.)

  • PGDATESTYLE устанавливает стиль представления даты/времени по умолчанию. (Равносильно SET datestyle TO ....)

  • PGTZ устанавливает часовой пояс по умолчанию. (Равносильно SET timezone TO ....)

  • PGGEQO устанавливает режим по умолчанию для генетического оптимизатора запросов. (Равносильно SET geqo TO ....)

Информацию о корректных значениях этих переменных окружения можно найти в описании SQL-команды SET.

Следующие переменные среды определяют внутреннее поведение libpq; они переопределяют встроенные значения.

  • PGSYSCONFDIR задаёт каталог, в котором содержится файл pg_service.conf, а в будущем он может содержать и другие общесистемные файлы конфигурации.

  • PGLOCALEDIR задаёт каталог, содержащий файлы locale, предназначенные для перевода сообщений.