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

Документ описывает параметры системной конфигурации в категории Подключение и аутентификация.

Примечание!
Для обеспечения стабильности и безопасности системы ручное изменение этих параметров должно выполняться с осторожностью.


Параметры подключения

bonjour


Включает или отключает рекламу Bonjour в базе данных.

Тип данных Значение по умолчанию Область применения
boolean off segments; system; restart

bonjour_name


Задает имя службы Bonjour.

  • По умолчанию используется имя компьютера. Пустая строка означает, что имя не задано.
  • Этот параметр игнорируется, если сервер не поддерживает Bonjour.
Тип данных Значение по умолчанию Область применения
string segments; system; restart

gp_connection_send_timeout


Таймаут (в секундах) для отправки данных на неотвечающие клиентские соединения с базой данных YMatrix во время выполнения запроса.

  • Значение 0 отключает таймаут, заставляя YMatrix ждать клиента бесконечно.
  • Значение по умолчанию — 3600, то есть 1 час.
  • После истечения таймаута запрос отменяется с сообщением: Could not send data to client: Connection timed out..
Тип данных Значение по умолчанию Область применения
int 3600 segments; system; reload

listen_addresses


Задает TCP/IP-адреса, на которых сервер ожидает клиентские подключения — список через запятую из имен хостов и/или числовых IP-адресов.

  • Специальная запись '*' соответствует всем доступным сетевым интерфейсам. Если список пуст, подключения возможны только через UNIX-сокеты.
Тип данных Значение по умолчанию Область применения
string * segments; system; restart

max_connections


Максимальное количество одновременных подключений к серверу базы данных.

  • В YMatrix клиентские подключения устанавливаются только через экземпляр Master.
  • При запуске Standby этот параметр должен быть установлен равным или выше, чем на Master; иначе запросы не смогут выполняться на Standby.
  • Количество подключений на экземплярах Segment должно быть в 5–10 раз больше, чем на Master.
  • Увеличение этого параметра может потребовать увеличения max_prepared_transactions.
  • Увеличение max_connections может привести к тому, что YMatrix запросит больше разделяемой памяти. Сведения о буферах разделяемой памяти в экземплярах сервера YMatrix см. в разделе shared_buffers.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 300 10 ~ 262143 segments; system; restart

port


Номер порта, на котором экземпляр базы данных ожидает подключения в YMatrix.

  • У Master и каждого Segment есть собственный порт.
  • Это значение должно быть синхронизировано в gp_segment_configuration.
  • Этот параметр можно задать только при запуске сервера. Перед изменением номера порта необходимо остановить систему YMatrix.
Тип данных Значение по умолчанию Область применения
int 5432 segments; system; restart

superuser_reserved_connections


Количество подключений, зарезервированных для суперпользователей в YMatrix.

  • В любой момент максимальное количество активных одновременных подключений равно max_connections минус superuser_reserved_connections.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 10 1 ~ 262143 segments; system; restart

unix_socket_directories


Список каталогов UNIX-сокетов, в которых сервер ожидает клиентские подключения.

  • Можно указать несколько каталогов, разделенных запятыми, чтобы создать несколько сокетов.
  • Пустое значение отключает прослушивание любых UNIX-сокетов; разрешены только TCP/IP-подключения.
  • Помимо самого файла сокета (с именем .s.PGSQL.nnnn, где nnnn — порт сервера), в каждом каталоге unix_socket_directories создается обычный файл с именем .s.PGSQL.nnnn.lock. Не удаляйте эти файлы вручную.
  • Этот параметр можно задать только при запуске сервера. Недоступен в Windows.
Тип данных Значение по умолчанию Область применения
string /tmp segments; system; restart

unix_socket_group


Задает группу-владельца UNIX-сокетов.

  • По умолчанию — пустая строка, что означает использование группы по умолчанию текущего пользователя.
  • Этот параметр можно задать только при запуске сервера. Недоступен в Windows.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
string имя UNIX-группы segments; system; restart

unix_socket_permissions


Задает права доступа к UNIX-сокетам.

  • UNIX-сокеты используют стандартные права файловой системы UNIX.
  • Этот параметр должен начинаться с 0 и задаваться в восьмеричной системе.
  • Для UNIX-сокетов важны только права на запись.
  • Значение по умолчанию — 0777, что означает возможность подключения любому пользователю. Разумные альтернативы: 0770 (доступ только для пользователя и группы) и 0700 (доступ только для пользователя). Это числовые режимы прав UNIX-файлов (как принимает системный вызов chmod или команда umask).
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 0777 0000 ~ 0777 segments; system; restart

tcp_keepalives_count


Количество TCP-keepalive-запросов, которые можно потерять, прежде чем сервер считает клиентское соединение мертвым.

  • Этот параметр поддерживается только на системах, поддерживающих TCP_KEEPCNT или эквивалентные параметры сокетов. На других системах (например, Windows) он должен быть равен нулю. Игнорируется и всегда возвращает ноль для сессий, подключенных через UNIX-сокеты.
  • Этот параметр применяется ко всем соединениям, кроме соединений между Primary и Mirror.
  • Значение по умолчанию 0 использует системное значение по умолчанию.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 0 0 ~ INT_MAX segments; system; restart

tcp_keepalives_idle


Время (в секундах), по истечении которого TCP отправляет keepalive-сообщение клиенту, если соединение бездействует.

  • Поддерживается только на системах, поддерживающих TCP_KEEPIDLE или эквивалентные параметры сокетов, или на Windows. На других системах он должен быть равен нулю. Игнорируется и всегда возвращает ноль для соединений через UNIX-сокеты.
  • На Windows установка 0 устанавливает этот параметр в 2 часа, так как Windows не поддерживает чтение системных значений по умолчанию.
  • Применяется ко всем соединениям, кроме соединений между Primary и Mirror.
  • Значение по умолчанию 0 использует системное значение по умолчанию.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 0 0 ~ INT_MAX segments; system; restart

tcp_keepalives_interval


Интервал (в секундах) между повторными отправками неподтвержденных TCP-keepalive-сообщений.

  • Поддерживается только на системах, поддерживающих TCP_KEEPINTVL или эквивалентные параметры сокетов, или на Windows. На других системах он должен быть равен нулю. Игнорируется и всегда возвращает ноль для соединений через UNIX-сокеты.
  • На Windows установка 0 устанавливает этот параметр в 1 секунду, так как Windows не поддерживает чтение системных значений по умолчанию.
  • Применяется ко всем соединениям, кроме соединений между Primary и Mirror.
  • Значение по умолчанию 0 использует системное значение по умолчанию.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 0 0 ~ INT_MAX segments; system; restart

tcp_user_timeout


Время (в миллисекундах), в течение которого переданные данные могут оставаться без подтверждения, прежде чем TCP-соединение будет принудительно закрыто.

  • Поддерживается только на системах, поддерживающих TCP_USER_TIMEOUT; в противном случае он должен быть равен нулю. Игнорируется и всегда возвращает ноль для соединений через UNIX-сокеты.
  • Не поддерживается на Windows и должен быть равен нулю.
  • Значение по умолчанию 0 использует системное значение по умолчанию.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 0 0 ~ INT_MAX segments; system; restart


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

authentication_timeout


Максимальное время (в секундах), отведенное клиенту для завершения аутентификации.

  • Если клиент не завершает протокол аутентификации в течение этого времени, сервер закрывает соединение, чтобы предотвратить бесконечное удержание соединений неисправными клиентами.
Тип данных Значение по умолчанию Допустимый диапазон Область применения
int 60 1 ~ 600 segments; system; restart

db_user_namespace


Включает имена пользователей, специфичные для базы данных.

  • Этот параметр выключен по умолчанию и может быть задан только в файле postgresql.conf или в командной строке сервера.
  • При включении пользователи должны создаваться в формате username@dbname. Когда клиентское подключение указывает username, к имени пользователя добавляются @ и dbname, и сервер ищет пользователя, специфичного для базы данных. Обратите внимание, что в SQL-средах имена пользователей, содержащие @, должны быть заключены в кавычки.
  • Глобальные пользователи все еще могут создаваться при включенном параметре. Чтобы указать такого пользователя с клиента, просто добавьте @, например, joe@. Часть @ удаляется перед тем, как сервер ищет имя пользователя.
  • db_user_namespace приводит к различию между представлениями имени пользователя на клиенте и сервере. Проверки аутентификации всегда используют серверное представление, поэтому методы аутентификации должны быть настроены для серверных имен пользователей, а не для клиентских. Поскольку метод md5 использует имя пользователя как соль как на клиенте, так и на сервере, md5 не может использоваться с db_user_namespace.
  • Эта функция предназначена как временное решение до появления полного решения. Этот параметр будет удален после реализации полноценного решения.
Тип данных Значение по умолчанию Область применения
boolean off master; system; restart

krb_caseins_users


Определяет, являются ли имена пользователей Kerberos чувствительными к регистру.

  • По умолчанию — чувствительны к регистру.
Тип данных Значение по умолчанию Область применения
boolean off segments; system; restart

krb_server_keyfile


Задает расположение файла ключа сервера Kerberos.

Тип данных Значение по умолчанию Область применения
string segments; system; restart

password_encryption


Определяет алгоритм, используемый для шифрования паролей, указанных в CREATE ROLE или ALTER ROLE.

  • Примечание: Старые клиенты могут не поддерживать механизм аутентификации SCRAM и, следовательно, не могут использовать пароли, зашифрованные с помощью SCRAM-SHA-256. Подробности см. в разделе Password Authentication.
Тип данных Значение по умолчанию Допустимые значения Область применения
enum md5(on) md5(on) / scram-sha-256 segments; session; reload


SSL

ssl


Включает или отключает SSL-подключения.

Тип данных Значение по умолчанию Область применения
boolean off segments; system; restart

ssl_ca_file


Задает имя файла, содержащего сертификаты центра сертификации (CA) SSL.

  • Относительные пути интерпретируются относительно каталога данных.
  • Значение по умолчанию — пустое, что означает отсутствие загрузки файла CA и отсутствие проверки сертификата клиента.
Тип данных Значение по умолчанию Область применения
string segments; system; restart

ssl_cert_file


Задает имя файла, содержащего сертификат сервера SSL.

  • Относительные пути интерпретируются относительно каталога данных.
Тип данных Значение по умолчанию Область применения
string server.crt segments; system; restart

ssl_ciphers


Задает список шифров SSL, используемых для защищенных соединений.

  • Синтаксис и поддерживаемые значения описаны на странице руководства OpenSSL ciphers.
Тип данных Значение по умолчанию Область применения
string HIGH:MEDIUM:+3DES:!aNULL segments; system; restart

ssl_crl_file


Задает имя файла, содержащего список отзыва сертификатов SSL (CRL).

  • Относительные пути интерпретируются относительно каталога данных.
  • Значение по умолчанию — пустое, что означает отсутствие загрузки файла CRL.
Тип данных Значение по умолчанию Область применения
string segments; system; restart

ssl_dh_params_file


Задает имя файла, содержащего параметры Диффи-Хеллмана для временного обмена ключами DH в SSL.

  • Значение по умолчанию — пустое, в этом случае используются встроенные параметры DH по умолчанию. Пользовательские параметры DH снижают риск эксплуатации атакующими известных встроенных параметров. Используйте команду openssl dhparam -out dhparams.pem 2048 для создания собственного файла параметров DH.
Тип данных Значение по умолчанию Область применения
string segments; system; restart

ssl_ecdh_curve


Задает имя кривой, используемой для обмена ключами ECDH.

  • Должна поддерживаться всеми подключающимися клиентами.
  • Не обязательно совпадать с кривой, используемой ключом эллиптической кривой сервера.
  • Может быть задан только в файле postgresql.conf или в командной строке сервера.
  • OpenSSL использует общепринятые названия кривых: prime256v1 (NIST P-256), secp384r1 (NIST P-384), secp521r1 (NIST P-521). Команда openssl ecparam -list_curves выводит полный список, хотя не все из них доступны для TLS.
Тип данных Значение по умолчанию Область применения
string prime256v1 segments; system; restart

ssl_key_file


Задает имя файла, содержащего закрытый ключ сервера SSL.

  • Относительные пути интерпретируются относительно каталога данных.
Тип данных Значение по умолчанию Область применения
string server.key segments; system; restart

ssl_max_protocol_version


Задает максимальную версию протокола SSL/TLS для использования.

  • Допустимые версии совпадают с ssl_min_protocol_version.
  • Установка максимальной версии протокола полезна в основном для тестирования совместимости с новыми версиями.
  • Значение по умолчанию — пустая строка, что означает разрешение всех версий.
Тип данных Значение по умолчанию Область применения
enum segments; system; restart; superuser

ssl_min_protocol_version


Устанавливает минимальную версию протокола SSL/TLS для использования.

  • Доступные версии: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3. Более старые библиотеки OpenSSL могут не поддерживать все значения и выдавать ошибку при выборе неподдерживаемой версии. Версии SSL 2 и 3 (до TLS 1.0) отключены.
  • Значение по умолчанию — TLSv1, в основном для совместимости со старыми библиотеками OpenSSL. Если все компоненты поддерживают более новые версии, рекомендуется установить более высокое значение.
Тип данных Значение по умолчанию Область применения
enum TLSv1 сегменты; система; перезагрузка

ssl_passphrase_command


Задаёт внешнюю команду, которая будет вызвана при необходимости парольной фразы (например, для расшифровки закрытого ключа) для SSL-файлов.

  • По умолчанию это поле пусто, что означает использование встроенного механизма запроса парольной фразы.
  • Команда должна выводить парольную фразу на stdout и завершаться с кодом 0. В значении параметра % заменяется на строку запроса (для получения буквального % используйте %%). Обратите внимание, что строка запроса может содержать пробелы, поэтому корректное экранирование обязательно. Завершающая новая строка в выводе удаляется.
  • Команда не обязана запрашивать парольную фразу у пользователя. Она может читать её из файла, получать из ключевого хранилища и т.д. Ответственность за обеспечение безопасности выбранного механизма лежит на пользователе.
Тип данных Значение по умолчанию Область применения
string сегменты; система; перезагрузка

ssl_passphrase_command_supports_reload


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

  • Если установлено в off (по умолчанию), ssl_passphrase_command игнорируется при перезагрузке, и SSL-конфигурация не будет перезагружена, если требуется парольная фраза.
  • Это подходит для команд, требующих TTY (который может отсутствовать при запущенном сервере). Если парольная фраза считывается из файла, установка этого параметра в on может быть уместной.
Тип данных Значение по умолчанию Область применения
boolean off сегменты; система; перезагрузка

ssl_prefer_server_ciphers


Определяет, следует ли использовать предпочтения сервера в выборе шифров SSL вместо предпочтений клиента.

  • Этот параметр в основном предназначен для обратной совместимости. Использование предпочтений сервера обычно предпочтительнее, так как сервер, как правило, лучше настроен.
Тип данных Значение по умолчанию Область применения
boolean on сегменты; система; перезагрузка