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

В этой статье рассматриваются расширенные функции подключения в расширении PostgreSQL для Visual Studio Code. Используйте эти параметры, если необходимо повторно использовать существующий строка подключения, указать файлы сертификатов для более строгой проверки TLS или подключиться через узел бастиона с помощью туннеля SSH.

Tip

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

Использовать режим ввода строки подключения

Выберите вкладку "Строка подключения " (в разделе "Подключение через:") в диалоговом окне подключения, чтобы вставить существующее определение подключения. Расширение анализирует строку автоматически и заполняет поля подключения.

На странице используется макет двух столбцов:

  • Левый столбец: текстовая область, помеченная строкой подключения , в которой вставляется строка. Подсказка под текстовым полем гласит: Пожалуйста, не указывайте пароль в строке подключения.
  • Правый столбец: панель сведений о подключении только для чтения, отображающая проанализированное имя сервера, имя пользователя и значения имени базы данных при извлечении.

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

Поддерживаемые форматы

Расширение распознает девять форматов строка подключения:

Format Префикс или триггер Example
PostgreSQL URI postgres:// или postgresql:// postgresql://user:password@host:5432/dbname?sslmode=require
JDBC jdbc:postgresql:// jdbc:postgresql://host:5432/dbname
Разделенные точкой с запятой (key=value) Содержит ; host=localhost;port=5432;dbname=mydb;user=postgres;password=secret
psql командная строка psql psql -h host -p 5432 -U user -d dbname
Экспорт переменных среды export export PGHOST=localhostза которым следует PGPORT, , PGUSERPGDATABASEPGPASSWORD
Node.js new Client new Client({ host: "localhost", port: 5432, user: "postgres", database: "mydb" })
Python (psycopg2) psycopg2.connect psycopg2.connect(user="postgres", password="<your-password>", host="localhost", port=5432, database="mydb")
PHP pg_connect pg_connect("host=localhost port=5432 dbname=mydb user=postgres")
Ruby PG::Connection.new PG::Connection.new(host: "localhost", port: "5432", user: "postgres", database: "mydb")

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

Note

После разбора вы по-прежнему можете открыть панель Дополнительно, чтобы настроить параметры, которые не задаются в строках подключения, например SSH-туннели или режим доступа к ИИ для каждого подключения (режим доступа Copilot в Visual Studio Code, режим доступа к ИИ в Cursor).

Настройка файлов сертификатов

Используйте параметры файла сертификата в разделе-аккордеоне SSL на панели Дополнительные параметры подключения, если в вашей среде требуется взаимная аутентификация TLS или явная проверка центра сертификации.

Режим корневого сертификата SSL

Раскрывающийся список режим корневого сертификата SSL определяет, как расширение предоставляет корневой сертификат ЦС. Выберите одно из следующих значений:

Режим Поведение
Нет Корневой сертификат не используется. Расширение не проверяет цепочку сертификатов сервера.
System Расширение использует доверенное хранилище сертификатов операционной системы. Для этого режима требуется режим проверки полного SSL; расширение применяет это автоматически.
Собственный файл Появится текстовое поле с меткой Имя файла корневого сертификата SSL. Введите путь к файлу сертификата корневого центра сертификации в кодировке PEM.

Important

При выборе System режим SSL автоматически устанавливается в значение Verify-Full. При изменении режима SSL на другое значение в то время как система активна, появится ошибка проверки: "при использовании хранилища системных сертификатов требуется режим SSLVerify-Full".

Поля сертификата клиента

Настройте взаимный TLS, предоставив пути в этих полях в разделе SSL :

Метка поля Property Описание
Имя файла SSL-сертификата sslcert Путь к файлу сертификата клиента.
Имя файла ключа SSL sslkey Путь к файлу закрытого ключа клиента.
Имя файла корневого сертификата SSL sslrootcert Путь к сертификату корневого центра сертификации (отображается только, когда режим корневого сертификата SSLПользовательский файл).
Имя файла SSL CRL sslcrl Путь к файлу списка отзыва сертификатов.
Использование сжатия SSL sslcompression Включает сжатие ssl-подключения.

Tip

Для режимов Verify-CA и Verify-Full всегда обязательно указывайте корневой сертификат, чтобы расширение могло проверить сертификат сервера. Используйте системный режим для использования доверенного хранилища ЦС операционной системы без указания пути к файлу.

Подключение через туннель SSH

Туннелирование SSH направляет подключение PostgreSQL через зашифрованный канал SSH. Используйте этот подход, если база данных недоступна непосредственно с рабочей станции. Например, если сервер находится в приватной сети за бастионным хостом.

Включение туннеля

  1. Откройте диалоговое окно подключения и выберите "Дополнительно ", чтобы открыть ящик расширенных параметров подключения .
  2. Разверните раздел аккордеона SSH Tunnel .
  3. Включите переключатель Включить туннелирование SSH. Отображаются поля подключения SSH.

Поля туннеля SSH

Метка поля Описание
хост Имя узла или IP-адрес сервера SSH (узел бастиона).
порт Номер порта сервера SSH (по умолчанию: 22).
username Имя пользователя для проверки подлинности с помощью сервера SSH.
Authentication Метод проверки подлинности SSH. Выберите пароль, файл удостоверений или агент SSH.

Остальные поля изменяются в зависимости от выбранного метода проверки подлинности:

Метод аутентификации Показаны дополнительные поля
Пароль password/passphrase: введите пароль SSH. Установите флажок "Пароль/парольная фраза", чтобы сохранить учетные данные.
Идентификационный файл Файл удостоверения: введите полный путь к закрытому ключу SSH (например, ~/.ssh/id_ed25519). password/passphrase: введите парольную фразу ключа, если закрытый ключ зашифрован. Установите флажок "Сохранить пароль/парольную фразу".
Агент SSH Никаких дополнительных полей. Расширение делегирует проверку подлинности агенту SSH системы (ssh-agentв macOS и Linux, службе агента проверки подлинности OpenSSH на Windows).

Принцип работы туннеля

Если туннель SSH включен, расширение сначала устанавливает SSH-соединение, создает локальное перенаправление порта, а затем подключается к PostgreSQL через него. Из-за этого:

  • Имя сервера в полях основного подключения должно быть адресом базы данных, как показано на узле SSH, который часто localhost или частный IP-адрес.
  • Порт должен быть портом PostgreSQL на целевом узле (обычно5432).
  • Создание туннеля SSH добавляет задержку подключения. Попробуйте увеличить значение Connect timeout в дополнительных параметрах, если возникают тайм-ауты.

Выбор подходящего дополнительного параметра

Сценарий Рекомендуемая функция
У вас есть существующий URI PostgreSQL, фрагмент кода приложения или команда psql Выберите вкладку "Строка подключения" , чтобы автоматически заполнить поля.
Для вашей организации требуются собственные файлы центра сертификации или взаимная аутентификация TLS Настройте поля сертификата SSL в разделе SSL дополнительной панели.
Необходимо использовать хранилище сертификатов ОС для проверки сервера Установите для режима корневого сертификата SSL значение System, а для режима SSLVerify-Full.
База данных доступна только через промежуточный сервер или бастионный хост Включите SSH-туннель в разделе SSH Tunnel расширенной панели.