listen_addresses (string)
#
Определяет TCP/IP-адрес(а), по которым сервер
принимает подключения от клиентских приложений.
Значение параметра представляет собой разделенный запятыми список имен хостов
и/или числовых IP-адресов. Специальная запись *
соответствует всем доступным IP-интерфейсам. Запись
0.0.0.0 позволяет принимать подключения по всем IPv4-адресам, а
:: позволяет принимать подключения по всем IPv6-адресам.
Если список пуст, сервер не прослушивает ни один IP-интерфейс,
и в этом случае для подключения к нему могут использоваться только Unix-сокеты.
Если список не пуст, сервер запустится при условии, что он
может прослушивать хотя бы один TCP/IP-адрес. Будет выведено
предупреждение для каждого TCP/IP-адреса, который не удалось открыть.
Значение по умолчанию — localhost,
что разрешает только локальные TCP/IP-соединения «loopback» через интерфейс
петли.
В то время как аутентификация клиентов (Глава 3.5) обеспечивает гибкое управление
правами доступа к серверу, listen_addresses
параметр определяет интерфейсы, принимающие попытки подключения, что
позволяет предотвратить повторяющиеся вредоносные запросы на соединение через
незащищенные сетевые интерфейсы. Данный параметр может быть задан только
при запуске сервера.
port (integer)
#TCP-порт, на котором сервер ожидает входящие соединения; значение по умолчанию — 5432. Обратите внимание, что один и тот же номер порта используется для всех IP-адресов, прослушиваемых сервером. Данный параметр может быть задан только при запуске сервера.
max_connections (integer)
#Определяет максимальное количество одновременных подключений к сервер баз данных. Значение по умолчанию обычно составляет 100 соединений, однако оно может быть меньше, если параметры ядра не поддерживают такое количество (как было определено в процессе выполнения initdb). Данный параметр может бы быть задан только при запуске сервера.
Digital Q.DataBase определяет размеры определенных ресурсов непосредственно на основе значения параметра
max_connections. Увеличение данного значения приводит к
выделению большего объема этих ресурсов, включая разделяемую память.
При работе резервного сервера необходимо установить данный параметр в то же или более высокое значение, чем на основном сервере. В противном случае выполнение запросов на резервном сервере будет невозможно.
reserved_connections (integer)
#
Определяет количество «слотов» соединений, которые
зарезервированы для подключений ролей с привилегиями
pg_use_reserved_connections
роли. В тех случаях, когда количество свободных слотов для подключения превышает значение
superuser_reserved_connections но меньше или
равно сумме значений superuser_reserved_connections
и reserved_connections, новые подключения будут
приниматься только для суперпользователей и ролей с правами
pg_use_reserved_connections. Если
superuser_reserved_connections или менее слотов для
подключения доступно, новые сеансы связи будут приниматься только для
суперпользователей.
Значение по умолчанию — ноль подключений. Значение параметра должно быть меньше значения
max_connections минус
superuser_reserved_connections. Данный параметр может
бы быть задан только при запуске сервера.
superuser_reserved_connections
(integer)
#
Определяет количество «слотов» которые
зарезервированы для подключений Digital Q.DataBase
суперпользователей. Максимально может быть активно не более 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. где
nnnnnnnn параметр представляет собой номер порта сервера, обычный файл
с именем .s.PGSQL. будет
создан в каждом из nnnn.lockunix_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-сокета значение имеет только право
на запись, поэтому нет смысла в назначении или отзыве
прав на чтение или выполнение.)
Данный механизм управления доступом не зависит от механизма, описанного в Глава 3.5.
Данный параметр может быть задан только при запуске сервера.
Данный параметр не имеет значения в системах, в частности Solaris начиная с версии
10, которые полностью игнорируют права доступа к сокету. В таких системах можно достичь
аналогичного эффекта путем указания пути unix_socket_directories к
каталог, права доступа на поиск в котором ограничены определенным кругом пользователей.
Сокеты в абстрактном пространстве имен не имеют прав доступа к файлам, поэтому данный параметр в таком случае также игнорируется.
bonjour (boolean)
#Включает оповещение о присутствии сервера через Bonjour. Значение по умолчанию — off. Данный параметр может быть задан только при запуске сервера.
bonjour_name (string)
#
Задает Bonjour имя
службы. Если для данного параметра задана
пустая строка '' (что является значением по умолчанию). Данный параметр
игнорируется, если сервер не был скомпилирован с
Bonjour поддержкой.
Данный параметр может быть задан только при запуске сервера.
tcp_keepalives_idle (integer)
#
Задает период отсутствия сетевой активности, по истечении которого
операционная система должна отправить сообщение TCP keepalive клиенту.
Если данное значение указано без указания единиц измерения, оно интерпретируется как значение в секундах.
При установке значения 0 (по умолчанию) используется системное значение по умолчанию операционной системы.
В ОС Windows при установке значения 0 для данного параметра будет задано значение 2 часа,
поскольку в ОС Windows отсутствует возможность чтения системного значения по умолчанию.
Данный параметр поддерживается только в операционных системах, обеспечивающих поддержку
TCP_KEEPIDLE или эквивалентного параметра сокета, а также в
Windows; в других системах значение данного параметра должно быть равно нулю.
В сеансах, использующих подключение через Unix-сокет, данный параметр
игнорируется и всегда возвращает нулевое значение.
tcp_keepalives_interval (integer)
#
Определяет интервал времени, по истечении которого сообщение TCP keepalive,
не получившее подтверждения от клиента, должно быть передано повторно.
Если данное значение указано без указания единиц измерения, оно интерпретируется как значение в секундах.
При установке значения 0 (по умолчанию) используется системное значение по умолчанию операционной системы.
В ОС Windows при установке значения 0 для данного параметра будет задано значение 1 секунда,
поскольку в ОС Windows отсутствует возможность чтения системного значения по умолчанию.
Данный параметр поддерживается только в операционных системах, обеспечивающих поддержку
TCP_KEEPINTVL или эквивалентного параметра сокета, а также в
Windows; в других системах значение данного параметра должно быть равно нулю.
В сеансах, использующих подключение через Unix-сокет, данный параметр
игнорируется и всегда возвращает нулевое значение.
tcp_keepalives_count (integer)
#
Определяет количество сообщений TCP keepalive, которые могут быть потеряны до того, как
соединение сервера с клиентом будет признано разорванным.
При установке значения 0 (по умолчанию) используется системное значение по умолчанию операционной системы.
Данный параметр поддерживается только в операционных системах, обеспечивающих поддержку
TCP_KEEPCNT или эквивалентный параметр сокета (за исключением Windows);
в других системах значение данного параметра должно быть равно нулю.
В сеансах, использующих подключение через Unix-сокет, данный параметр
игнорируется и всегда возвращает нулевое значение.
tcp_user_timeout (integer)
#
Определяет период времени, в течение которого переданные данные могут
оставаться неподтвержденными до принудительного разрыва TCP-соединения.
Если данное значение указано без единиц измерения, оно интерпретируется в миллисекундах.
При установке значения 0 (по умолчанию) используется системное значение по умолчанию операционной системы.
Данный параметр поддерживается только в операционных системах, обеспечивающих поддержку
TCP_USER_TIMEOUT (за исключением Windows); в других системах значение данного параметра должно быть равно нулю.
В сеансах, использующих подключение через Unix-сокет, данный параметр
игнорируется и всегда возвращает нулевое значение.
client_connection_check_interval (integer)
#Устанавливает интервал времени между необязательными проверками наличия подключения клиента во время выполнения запросов. Проверка осуществляется путем опроса сокета и позволяет быстрее прерывать длительные запросы в случае, если ядро сообщает о закрытии соединения.
Данный параметр использует события ядра, предоставляемые Linux, macOS, illumos и операционными системами семейства BSD; в настоящее время он недоступен в других системах.
Если значение указано без единиц измерения, оно интерпретируется в миллисекундах.
Значение по умолчанию — 0, что отключает выполнение проверок
соединения. При отсутствии проверок соединения сервер обнаружит потерю
связи только при следующем взаимодействии с сокетом, когда
ожидает, получает или отправляет данные.
Для надежного обнаружения потерянных TCP-соединений самим ядром в течение заданного периода времени во всех сценариях, включая сетевой сбой, может также потребоваться корректировка параметров TCP keepalive операционной системы или tcp_keepalives_idle, tcp_keepalives_interval и tcp_keepalives_count параметров Digital Q.DataBase.
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. См. Раздел 3.5.5 для получения более подробных сведений.
scram_iterations (integer)
#
Количество вычислительных итераций, выполняемых при шифровании
пароля с помощью SCRAM-SHA-256. Значение по умолчанию — 4096.
Увеличение количества итераций обеспечивает дополнительную защиту от
атак методом перебора на сохраненные пароли, но замедляет процесс
аутентификации. Изменение значения этого параметра не влияет на существующие пароли,
зашифрованные с использованием SCRAM-SHA-256, так как количество итераций фиксируется в
момент шифрования. Для применения измененного значения параметра необходимо
установить новый пароль.
krb_server_keyfile (string)
#
Определяет местоположение файла ключей Kerberos сервера. По умолчанию используется
FILE:/usr/local/pgsql/etc/krb5.keytab
(где часть пути с каталогом соответствует значению, указанному
в качестве sysconfdir во время сборки; используйте
pg_config --sysconfdir для определения этого пути).
Если для данного параметра установлена пустая строка, он игнорируется и используется
системно-зависимое значение по умолчанию.
Данный параметр может быть задан только в
postgresql.conf конфигурационном файле или в командной строке запуска сервера.
См. Раздел 3.5.6 для получения дополнительной информации.
krb_caseins_users (boolean)
#
Определяет, должны ли имена пользователей GSSAPI обрабатываться
как нечувствительные к регистру.
Значение по умолчанию — off (с учетом регистра). Данный параметр может быть только
установлен в postgresql.conf конфигурационном файле или в командной строке запуска сервера.
gss_accept_delegation (boolean)
#
Определяет, должно ли приниматься делегирование учетных данных GSSAPI от клиента.
Значение по умолчанию — off что означает, что учетные данные клиента
не будут приняты. Изменение данного параметра на on позволит серверу
принимать учетные данные, делегированные ему клиентом. Данный параметр может быть только
установлен в postgresql.conf конфигурационном файле или в командной строке запуска сервера.
См. Раздел 3.3.9 для получения дополнительных сведений о настройке
SSL. Параметры конфигурации для управления шифрованием передачи данных с использованием TLS протоколов имеют префикс
ssl по историческим причинам, несмотря на то, что поддержка SSL протокола была признана устаревшей.
SSL в данном контексте используется взаимозаменяемо с
TLS.
ssl (boolean)
#
Разрешает SSL соединения.
Данный параметр может быть установлен только в postgresql.conf
файле или в командной строке сервера.
Значение по умолчанию — off.
ssl_ca_file (string)
#
Задает имя файла, содержащего сертификат сервера SSL
центра сертификации (CA).
Относительные пути указываются относительно каталога данных.
Данный параметр может быть установлен только в 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-соединениях. См.
ciphers
страницу справочного руководства в OpenSSL пакете для ознакомления с
синтаксисом данного параметра и списком поддерживаемых значений. Влияние оказывается только на
соединения, использующие TLS версии 1.2 и ниже. В настоящее время
отсутствует параметр, управляющий выбором наборов шифров для протокола TLS
для соединений версии 1.3. Значением по умолчанию является
HIGH:MEDIUM:+3DES:!aNULL. Значение по умолчанию обычно представляет собой
оптимальный выбор, за исключением случаев со специфическими требованиями к безопасности.
Данный параметр может быть задан только в
postgresql.conf файле или в командной
строка.
Пояснение значения по умолчанию:
HIGH #
Наборы шифров, использующие алгоритмы из HIGH группы (например,
AES, Camellia, 3DES)
MEDIUM #
Наборы шифров, использующие алгоритмы из MEDIUM группы
(например, RC4, SEED)
+3DES #
Команда OpenSSL порядок по умолчанию для
HIGH является неоптимальным, так как располагает 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.
Digital Q.DataBase в версиях до 9.4 отсутствует данный параметр и всегда использовать настройки клиента. Данный параметр предназначен в основном для обеспечения обратной совместимости с этими версиями. Использование настроек сервера обычно предпочтительнее, так как более вероятно, что сервер сконфигурирован надлежащим образом.
ssl_ecdh_curve (string)
#
Определяет имя кривой, используемой при ECDH обмене
ключами. Выбранный алгоритм должен поддерживаться всеми подключающимися клиентами.
Данная кривая не обязательно должна совпадать с кривой, используемой в ключе сервера на базе эллиптических
кривых (Elliptic Curve).
Данный параметр может быть установлен только в postgresql.conf
файле или в командной строке сервера.
Значение по умолчанию — prime256v1.
OpenSSL названиями наиболее распространенных кривых
являются:
prime256v1 (NIST P-256),
secp384r1 (NIST P-384),
secp521r1 (NIST P-521).
Полный список доступных эллиптических кривых можно просмотреть с помощью команды
openssl ecparam -list_curves. Однако не все из них
могут быть использованы в TLS though.
ssl_min_protocol_version (enum)
#
Определяет минимально допустимую версию протокола SSL/TLS. Текущие допустимые
значения: TLSv1, TLSv1.1,
TLSv1.2, TLSv1.3. Более старые
версии данной OpenSSL библиотеки
поддерживают не все значения; при выборе неподдерживаемого параметра будет сгенерирована ошибка
is chosen. Версии протокола до 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)
#
Задает имя файла, содержащего параметры DH,
используемые для семейства эфемерных DH-шифров SSL. По умолчанию параметр
не задан, и используются встроенные параметры 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 также вызываться в процессе
перезагрузки конфигурации, если для файла ключа требуется парольная фраза. Если этот
параметр имеет значение off (по умолчанию), то параметр
ssl_passphrase_command будет игнорироваться при
перезагрузке, и конфигурация SSL не будет обновлена, если требуется ввод парольной фразы
is needed. Данная настройка подходит для команд, требующих наличия
терминала TTY для запроса данных, который может быть недоступен при работающем
сервере. Установка этого параметра в значение on может быть целесообразной, если
парольная фраза считывается, например, из файла.
Данный параметр может быть установлен только в postgresql.conf
файле или в командной строке сервера.