Перейти к основному содержимому

Подключения и аутентификация

примечание

Эта страница переведена при помощи нейросети GigaChat.

Настройки подключения

listen_addresses (string)

Задает TCP/IP адрес(а), на котором сервер должен прослушивать соединения от клиентских приложений. Значение представляет собой список имен хостов и/или числовых IP-адресов, разделенных запятыми. Специальный элемент * соответствует всем доступным интерфейсам IP. Запись 0.0.0.0 позволяет слушать все адреса IPv4, а запись :: позволяет слушать все адреса IPv6. Если список пуст, сервер вообще не слушает ни один интерфейс IP, в этом случае для подключения к нему могут использоваться только сокеты домена Unix. Если список не пустой, сервер запустится, если сможет прослушивать хотя бы один TCP/IP-адрес. Будет выдано предупреждение для любого TCP/IP-адреса, который не может быть открыт. Значением по умолчанию является localhost, что позволяет устанавливать только локальные TCP/IP-соединения типа «петля».

Хотя аутентификация клиентов (раздел «Аутентификация клиентского приложения») позволяет точно контролировать, кто может получить доступ к серверу, listen_addresses контролирует, какие интерфейсы принимают попытки подключения, что может помочь предотвратить повторяющиеся злонамеренные запросы на подключение к незащищенным сетевым интерфейсам. Этот параметр можно установить только при запуске сервера.

port (integer)

TCP-порт, на котором прослушивает сервер; по умолчанию 5432. Обратите внимание, что один и тот же номер порта используется для всех IP-адресов, на которые настроен сервер. Этот параметр можно установить только при запуске сервера.

max_connections (integer)

Определяет максимальное количество одновременных подключений к серверу баз данных. По умолчанию обычно 100 соединений, но их может быть меньше, если настройки ядра не будут поддерживать это (как определено во время initdb). Этот параметр можно установить только при запуске сервера.

При запуске резервного сервера необходимо установить этот параметр на то же или более высокое значение, что и на основном сервере. В противном случае запросы не будут разрешены на резервном сервере.

superuser_reserved_connections (integer)

Определяет количество подключений «слотов», которые зарезервированы для подключений суперпользователей PostgreSQL. Одновременно может быть активно не более max_connections подключений. Всякий раз, когда количество активных одновременных подключений составляет по крайней мере max_connections минус superuser_reserved_connections, новые соединения будут приниматься только для суперпользователей, и никакие новые репликационные соединения приняты не будут.Слоты подключения, зарезервированные этим параметром, предназначены для использования в экстренных случаях, когда закончатся слоты, зарезервированные reserved_connections.

По умолчанию резервируются три соединения. Это значение должно быть меньше значения max_connections минус reserved_connections. Задать этот параметр можно только при запуске сервера.

unix_socket_directories (string)

Указывает каталог сокета Unix-домена(ов), к которому сервер должен подключиться для получения соединений от клиентских приложений. Можно создать несколько сокетов, перечислив несколько каталогов через запятую. Пробелы между элементами игнорируются; заключите имя каталога в двойные кавычки, если нужно включить пробелы или запятые в имени. Пустое значение указывает на то, что нет прослушивания на каких-либо сокетах домена Unix, и в этом случае для подключения к серверу могут использоваться только сокеты TCP/IP.

Значение, начинающееся с @, указывает на то, что следует создать сокет пространства имен Unix (в настоящее время поддерживается только в Linux). В этом случае это значение не определяет «каталог», а префикс, из которого фактическое имя сокета вычисляется таким же образом, как и для файловой системы пространство имен. Хотя префикс абстрактного имени сокета может быть выбран произвольно, поскольку он не является расположением файловой системы, конвенция заключается в том, чтобы тем не менее использовать значения, подобные файловой системе, такие как @/tmp.

Значение по умолчанию обычно равно /tmp, но это можно изменить во время сборки. В Windows значение по умолчанию пустое, что означает, что сокет домена Unix не создается по умолчанию. Этот параметр может быть установлен только при запуске сервера.

В дополнение к самому файлу сокета, который называется .s.PGSQL.nnnn, где nnnn - номер порта сервера, будет создан обычный файл с именем .s.PGSQL.nnnn.lock в каждой из директорий unix_socket_directories. Ни один из этих файлов никогда не должен удаляться вручную. Для сокетов в абстрактном пространстве имен файл блокировки не создается.

unix_socket_group (string)

Устанавливает группу-владельца сокета домена Unix (). Пользователь-владелец сокетов всегда является пользователем, который запустил сервер. В сочетании с параметром unix_socket_permissions это можно использовать в качестве дополнительного механизма управления доступом для соединений в домене Unix. По умолчанию это пустая строка, которая использует группу по умолчанию пользователя сервера. Этот параметр может быть установлен только при запуске сервера.

Этот параметр не поддерживается в Windows. Любые настройки будут проигнорированы. Кроме того, у сокетов в абстрактном пространстве нет владельца файла, поэтому эта настройка также игнорируется в этом случае.

unix_socket_permissions (integer)

Устанавливает разрешения доступа к сокету домена Unix. Сокеты домена Unix используют обычный набор разрешений файловой системы Unix. Ожидается, что значение параметра будет числовым режимом, указанным в формате, принятом вызовами систем chmod и umask. (Чтобы использовать обычную восьмеричную форму, число должно начинаться с 0 (ноль).)

Разрешения по умолчанию равны 0777, что означает, что подключиться может любой пользователь. Разумные альтернативы включают 0770 (только пользователь и группа, см. также unix_socket_group) и 0700 (только пользователь). (Обратите внимание, что для сокета домена Unix важна только разрешение на запись, поэтому нет смысла устанавливать или отменять разрешения на чтение или выполнение.)

Этот механизм управления доступом независим от описанного в разделе «Аутентификация клиентского приложения».

Этот параметр можно установить только при запуске сервера.

Этот параметр не актуален для систем, таких как Solaris начиная с версии Solaris 10, которые полностью игнорируют разрешения сокетов. В этом случае аналогичный эффект может быть достигнут путем указания unix_socket_directories на каталог, имеющий разрешение на поиск, ограниченное желаемой аудиторией.

Сокеты в абстрактном пространстве имен не имеют разрешений файла, поэтому эта настройка также игнорируется в этом случае.

bonjour (boolean)

Включает рекламу существования сервера через Bonjour. По умолчанию это отключено. Этот параметр можно установить только при запуске сервера.

bonjour_name (string)

Задает имя службы Bonjour. Если этот параметр установлен в пустую строку '' (что является значением по умолчанию), используется имя компьютера. Этот параметр игнорируется, если сервер был скомпилирован без поддержки Bonjour. Этот параметр может быть задан только при запуске сервера.

tcp_keepalives_idle (integer)

Указывает количество времени без сетевой активности, после которого операционная система должна отправить сообщение TCP keepalive клиенту. Если это значение указано без единиц измерения, оно принимается за секунды. Значение 0 (по умолчанию) выбирает значение по умолчанию операционной системы. Этот параметр поддерживается только в системах, которые поддерживают TCP_KEEPIDLE или эквивалентный параметр сокета и в Windows; в других системах он должен быть равен нулю. В сеансах, подключенных через сокет домена Unix, этот параметр игнорируется и всегда читается как ноль.

Примечание

В Windows установка значения 0 установит для этого параметра значение 2 часа, поскольку Windows не предоставляет способа чтения системного значения по умолчанию.

tcp_keepalives_interval (integer)

Указывает количество времени, по истечении которого сообщение TCP keepalive, которое не было подтверждено клиентом, должно быть передано повторно. Если это значение указано без единиц измерения, оно принимается за секунды. Значение 0 (по умолчанию) выбирает значение по умолчанию операционной системы. Этот параметр поддерживается только в системах, которые поддерживают TCP_KEEPINTVL или эквивалентный параметр сокета и в Windows; в других системах он должен быть равен нулю. В сеансах, подключенных через сокет домена Unix, этот параметр игнорируется и всегда читается как ноль.

Примечание

В Windows установка значения 0 установит этот параметр на 1 секунду, поскольку Windows не предоставляет способа чтения системного значения по умолчанию.

tcp_keepalives_count (integer)

Задает количество сообщений TCP keepalive, которые могут быть потеряны до того, как соединение сервера с клиентом будет считаться мертвым. Значение 0 (по умолчанию) выбирает значение по умолчанию операционной системы. Этот параметр поддерживается только на системах, поддерживающих TCP_KEEPCNT или эквивалентный сокет-опцию; на других системах он должен быть равен нулю. В сеансах, подключенных через сокет домена Unix, этот параметр игнорируется и всегда читается как ноль.

Примечание

Этот параметр не поддерживается в Windows и должен быть равен нулю.

tcp_user_timeout (integer)

Задает количество времени, в течение которого переданные данные могут оставаться неподтвержденными, прежде чем TCP-соединение будет принудительно закрыто. Если это значение указано без единиц измерения, оно принимается за миллисекунды. Значение 0 (по умолчанию) выбирает значение по умолчанию операционной системы. Этот параметр поддерживается только на системах, поддерживающих TCP_USER_TIMEOUT; на других системах он должен быть равен нулю. В сеансах, подключенных через сокет домена Unix, этот параметр игнорируется и всегда читается как ноль.

Примечание

Этот параметр не поддерживается в Windows и должен быть равен нулю.

client_connection_check_interval (integer)

Устанавливает интервал времени между необязательными проверками того, что клиент все еще подключен, при выполнении запросов. Проверка выполняется путем опроса сокета и позволяет прерывать длительные запросы раньше, если ядро сообщает о закрытии соединения.

Эта опция использует события ядра, предоставляемые Linux, macOS, illumos и семейством операционных систем BSD, и в настоящее время недоступна на других системах.

Если значение указано без единиц измерения, оно принимается за миллисекунды. Значение по умолчанию равно 0, что отключает проверку соединений. Без проверок соединения сервер обнаружит потерю соединения только при следующем взаимодействии с сокетом, когда он ожидает, получает или отправляет данные.

Для того чтобы ядро само могло надежно обнаруживать потерянные TCP-соединения и в известные сроки во всех сценариях, включая сбой сети, может также потребоваться настроить параметры TCP keepalive операционной системы или параметры tcp_keepalives_idle, tcp_keepalives_interval и tcp_keepalives_count параметра PostgreSQL.

Параметры TCP

tcp_keepalives_idle (integer)

Задает период отсутствия сетевой активности, по истечении которого операционная система должна отправить клиенту TCP-сигнал сохранения соединения. Если это значение задается без единиц измерения, оно считается заданным в секундах. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. В Windows при присваивании нулевого значения этот период устанавливается равным 2 часам, так как Windows не позволяет прочитать системное значение по умолчанию. Этот параметр поддерживается только в системах, воспринимающих параметр сокета TCP_KEEPIDLE или равнозначный, а также в Windows; в других системах он должен быть равен нулю. В сеансах, подключенных через Unix-сокеты, он игнорируется и всегда считается равным 0.

tcp_keepalives_interval (integer)

Задает интервал, по истечении которого следует повторять TCP-сигнал сохранения соединения, если от клиента не получено подтверждение предыдущего сигнала. Если это значение задается без единиц измерения, оно считается заданным в секундах. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. В Windows при нулевом значении этот интервал устанавливается равным 1 секунде, так как Windows не позволяет прочитать системное значение по умолчанию. Этот параметр поддерживается только в системах, воспринимающих параметр сокета TCP_KEEPINTVL или равнозначный, а также в Windows; в других системах он должен быть равен нулю. В сеансах, подключенных через Unix-сокеты, он игнорируется и всегда считается равным 0.

tcp_keepalives_count (integer)

Задает число TCP-сигналов сохранения соединения, которые могут быть потеряны до того, как соединение сервера с клиентом будет признано прерванным. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. Этот параметр поддерживается только в системах, воспринимающих параметр сокета TCP_KEEPCNT или равнозначный (Windows не входит в их число); в других системах он должен быть равен нулю. В сеансах, подключенных через Unix-сокеты, он игнорируется и всегда считается равным 0.

tcp_user_timeout (integer)

Задает интервал, в течение которого переданные данные могут оставаться неподтвержденными, прежде чем будет принято решение о принудительном закрытии TCP-соединения. Если это значение задается без единиц измерения, оно считается заданным в миллисекундах. При значении 0 (по умолчанию) действует величина, принятая по умолчанию в операционной системе. Этот параметр поддерживается только в системах, воспринимающих параметр сокета TCP_USER_TIMEOUT (Windows не входит в их число); в других системах он должен быть равен нулю. В сеансах, подключенных через доменные сокеты Unix, он игнорируется и всегда считается равным 0.

client_connection_check_interval (integer)

Задает интервал между необязательными проверками соединения сервера с клиентом в процессе выполнения запроса. Такая проверка, заключающаяся в опросе состояния сокета, позволяет раньше прерывать длительные запросы, если ядро сообщает, что соединение закрыто.

Эта функциональность зависит от событий ядра, имеющихся только в Linux, macOS, illumos и операционных системах семейства BSD, и в настоящее время недоступна в других системах.

Если это значение задается без единиц измерения, оно считается заданным в миллисекундах. Значение по умолчанию — 0, то есть проверка соединения отключена. Если соединение не проверяется, сервер обнаружит разрыв соединения только при следующем обращении к сокету, когда будет передавать, ожидать или читать данные.

Чтобы само ядро могло надежно и в течение известного периода времени обнаруживать потерянные TCP-соединения во всех сценариях, включая сбой сети, также может потребоваться изменить параметры сохранения TCP-соединения в операционной системе или параметры PostgreSQL tcp_keepalives_idle, tcp_keepalives_interval и tcp_keepalives_count.

Аутентификация

authentication_timeout (integer)

Максимальное время, разрешенное для завершения аутентификации клиента. Если предполагаемый клиент не завершил протокол аутентификации за это время, сервер закрывает соединение. Это предотвращает бесконечное занятие соединения зависшими клиентами. Если это значение указано без единиц измерения, оно принимается за секунды. По умолчанию одна минута (1m). Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера.

password_encryption (enum)

Когда пароль указан в CREATE ROLE или ALTER ROLE, этот параметр определяет алгоритм, который следует использовать для шифрования пароля. Возможные значения включают scram-sha-256, что зашифрует пароль с помощью SCRAM-SHA-256, и md5, который хранит пароль в виде хеша MD5. По умолчанию используется значение scram-sha-256.

Обратите внимание, что старые клиенты могут не поддерживать механизм аутентификации SCRAM и поэтому не будут работать с паролями, зашифрованными с использованием SCRAM-SHA-256. См. Раздел Аутентификация по паролю для получения более подробной информации.

krb_server_keyfile (string)

Устанавливает расположение файла ключа Kerberos сервера. Значением по умолчанию является FILE:/usr/local/pgsql/etc/krb5.keytab (где часть каталога - это то, что было указано как sysconfdir во время сборки; используйте pg_config --sysconfdir, чтобы определить это). Если этот параметр установлен в пустую строку, он игнорируется и используется системная зависимость по умолчанию. Этот параметр может быть установлен только в файле postgresql.conf или в командной строке сервера. См. Раздел Аутентификация GSSAPI для получения дополнительной информации.

krb_caseins_users (boolean)

Устанавливает, следует ли обрабатывать имена пользователей GSSAPI без учета регистра. По умолчанию используется off (регистр чувствительный). Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.

db_user_namespace (boolean)

Этот параметр включает имена пользователей для каждой базы данных. Он отключен по умолчанию. Этот параметр может быть установлен только в файле postgresql.conf или в командной строке сервера.

Если этот параметр включен, необходимо создавать пользователей как username@dbname. Когда username передается подключающимся клиентом, к имени пользователя добавляются @ и имя базы данных, и это конкретное имя пользователя базы данных ищется сервером. Обратите внимание, что при создании пользователей с именами, содержащими @ в среде SQL, потребуется заключить имя пользователя в кавычки.

С этим параметром можно создавать обычных глобальных пользователей. Просто добавьте @ при указании имени пользователя в клиенте, например, joe@. @ будет удален перед тем, как сервер найдет имя пользователя.

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

Примечание

Эта функция предназначена как временная мера до тех пор, пока не будет найдено полное решение. В это время этот параметр будет удален.

SSL

См. Раздел «Безопасные соединения TCP/IP с помощью SSL» для получения дополнительной информации о настройке SSL. Параметры конфигурации для управления шифрованием передачи с использованием протоколов TLS называются ssl по историческим причинам, даже несмотря на то, что поддержка протокола SSL была прекращена. В этом контексте SSL используется взаимозаменяемо с TLS.

ssl (boolean)

Включает подключения SSL. Этот параметр может быть установлен только в файле postgresql.conf или в командной строке сервера. По умолчанию установлено значение off.

ssl_ca_file (string)

Задает имя файла, содержащего сертификат центра сертификации (CA) сервера SSL. Относительные пути относительны к каталогу данных. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера. По умолчанию это пусто, что означает, что файл CA не загружен и проверка клиентского сертификата не выполняется.

ssl_cert_file (string)

Задает имя файла, содержащего сертификат сервера SSL. Относительные пути относительны к каталогу данных. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера. По умолчанию это server.crt.

ssl_crl_file (string)

Задает имя файла, содержащего список отозванных сертификатов клиента SSL (CRL). Относительные пути относительны к каталогу данных. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера. По умолчанию это пусто, что означает, что файл CRL не загружен (если не установлен ssl_crl_dir).

ssl_crl_dir (string)

Задает имя каталога, содержащего список отозванных сертификатов клиента SSL (CRL). Относительные пути относительны к каталогу данных. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера. По умолчанию это пусто, что означает, что CRL не используются (если не установлен ssl_crl_file).

Каталог необходимо подготовить с помощью команды OpenSSL openssl rehash или c_rehash. См. документацию для получения подробной информации.

При использовании этого параметра CRL из указанного каталога загружаются по запросу во время подключения. Новые CRL могут быть добавлены в каталог и будут использоваться немедленно. Это отличается от ssl_crl_file, который вызывает загрузку CRL из файла при запуске сервера или при повторной загрузке конфигурации. Оба параметра можно использовать вместе.

ssl_key_file (string)

Задает имя файла, содержащего закрытый ключ SSL-сервера. Относительные пути относительны к каталогу данных. Этот параметр может быть установлен только в файле postgresql.conf или в командной строке сервера. Значение по умолчанию - server.key.

ssl_ciphers (string)

Указывает список наборов шифров SSL, которые разрешено использовать подключениями SSL. См. страницу руководства шифры в пакете OpenSSL для синтаксиса этого параметра и списка поддерживаемых значений. На это влияют только соединения, использующие версию TLS 1.2 и ниже. В настоящее время нет настройки, которая контролировала бы выбор шифров, используемых соединениями версии TLS 1.3. Значение по умолчанию - HIGH:MEDIUM:+3DES:!aNULL. По умолчанию обычно является разумным выбором, если нет конкретных требований безопасности.

Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.

Объяснение значения по умолчанию:

HIGH

Криптографические пакеты, использующие шифры из группы HIGH (например, AES, Camellia, 3DES)

MEDIUM

Криптографические пакеты, использующие шифры из группы MEDIUM (например, RC4, SEED)

+3DES

Порядок по умолчанию для OpenSSL является проблематичным, потому что он ставит 3DES выше, чем AES128. Это неправильно, потому что 3DES предлагает меньше безопасности, чем AES128, и он также намного медленнее. +3DES переупорядочивает его после всех других HIGH и MEDIUM шифров.

!aNULL

: Отключает анонимные наборы шифров, которые не выполняют аутентификацию. Такие наборы шифров уязвимы для атак MITM, поэтому их не следует использовать.

Доступные детали набора шифров будут различаться в зависимости от версий OpenSSL. Используйте команду openssl ciphers -v 'HIGH:MEDIUM:+3DES:!aNULL' чтобы увидеть фактические подробности для текущей установленной версии OpenSSL. Обратите внимание, что этот список фильтруется во время выполнения на основе типа ключа сервера.

ssl_prefer_server_ciphers (boolean)

Указывает, следует ли использовать предпочтения SSL-шифра сервера, а не клиента. Этот параметр может быть установлен только в файле postgresql.conf или в командной строке сервера. По умолчанию используется on.

Более старые версии PostgreSQL не имеют этой настройки и всегда используют предпочтения клиента. Эта настройка предназначена главным образом для обеспечения обратной совместимости с этими версиями. Использование предпочтений сервера обычно лучше, потому что сервер, скорее всего, настроен соответствующим образом.

ssl_ecdh_curve (string)

Задает имя кривой, которую следует использовать при обмене ключами ECDH. Она должна поддерживаться всеми клиентами, которые подключаются. Это не обязательно та же самая кривая, которая используется эллиптическим ключом сервера. Этот параметр можно задать только в файле postgresql.conf или в командной строке сервера. Значение по умолчанию - prime256v1.

OpenSSL имена наиболее распространенных кривых: prime256v1 (NIST P-256), secp384r1 (NIST P-384), secp521r1 (NIST P-521). Полный список доступных кривых может быть показан командой openssl ecparam -list_curves. Однако не все из них могут использоваться в TLS.

ssl_min_protocol_version (enum)

Устанавливает минимальную версию протокола SSL/TLS, который будет использоваться. Допустимые значения в настоящее время: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3. Более старые версии библиотеки OpenSSL не поддерживают все значения; ошибка будет вызвана, если выбран неподдерживаемый параметр. Версии протоколов до TLS 1.0, а именно версии SSL 2 и 3, всегда отключены.

По умолчанию используется TLSv1.2, что соответствует передовым отраслевым практикам на момент написания этой статьи.

Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.

ssl_max_protocol_version (enum)

Устанавливает максимальную версию протокола SSL / TLS для использования. Допустимые значения такие же, как и для ssl_min_protocol_version , с добавлением пустой строки, которая позволяет использовать любую версию протокола. По умолчанию разрешено использование любой версии. Установка максимальной версии протокола полезна главным образом для тестирования или если какая-то компонента имеет проблемы при работе с более новым протоколом.

Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.

ssl_dh_params_file (string)

Задает имя файла, содержащего параметры Диффи-Хеллмана, используемые для так называемых эфемерных шифров SSL семейства DH. По умолчанию это пусто, в этом случае используются скомпилированные по умолчанию параметры DH. Использование пользовательских параметров DH снижает риск, если злоумышленник сможет взломать хорошо известные скомпилированные параметры DH. Можно создать свой собственный файл параметров DH с помощью команды openssl dhparam -out dhparams.pem 2048.

Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.

ssl_passphrase_command (string)

Устанавливает внешнюю команду, которая должна вызываться при необходимости получения фразы-пароля для расшифровки файла SSL, такого как закрытый ключ. По умолчанию этот параметр пуст, что означает использование встроенного механизма запроса.

Команда должна вывести фразу-пароль на стандартный вывод и завершить работу с кодом 0. В значении параметра %p заменяется строкой подсказки. (Запишите %% для буквального %.) Обратите внимание, что строка подсказки, вероятно, будет содержать пробелы, поэтому убедитесь, что правильно цитируете. Одна новая строка удаляется из конца вывода, если она присутствует.

Команда не обязательно должна запрашивать у пользователя парольную фразу. Она может прочитать ее из файла, получить из службы хранения ключей или аналогичного источника. Пользователь должен убедиться, что выбранный механизм достаточно безопасен.

Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.

ssl_passphrase_command_supports_reload (boolean)

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

Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.