Opzioni di connessione avanzate

Questo articolo illustra le funzionalità di connessione avanzate nell'estensione PostgreSQL per Visual Studio Code. Usare queste opzioni quando è necessario riutilizzare un stringa di connessione esistente, specificare i file di certificato per la convalida TLS più restrittiva o connettersi tramite un bastion host con un tunnel SSH.

Tip

Per l'autenticazione standard, la selezione della modalità SSL, i gruppi di server e le connessioni salvate, vedere Connessioni e identità.

Usa la modalità di immissione della stringa di connessione

Selezionare la scheda Stringa di connessione (in Connetti tramite:) nella finestra di dialogo di connessione per incollare una definizione di connessione esistente. L'estensione analizza automaticamente la stringa e popola i campi di connessione.

La pagina usa un layout a due colonne:

  • Colonna sinistra: un'area di testo con etichetta Stringa di connessione in cui si incolla la stringa. Un suggerimento sotto l'area di testo legge Si prega di omettere la password dal stringa di connessione.
  • Colonna destra: pannello Dettagli connessione di sola lettura che mostra i valori nome server analizzato, Nome utente e Nome database durante l'estrazione.

L'analisi sintattica avviene in tempo reale mentre digiti o incolli. Se il parser rileva un server o un valore utente mancante, viene visualizzato un errore di convalida sopra l'area di testo.

Formati supportati

L'estensione riconosce nove formati stringa di connessione:

Format Prefisso o attivatore Esempio
PostgreSQL URI postgres:// oppure postgresql:// postgresql://user:password@host:5432/dbname?sslmode=require
JDBC jdbc:postgresql:// jdbc:postgresql://host:5432/dbname
Punto e virgola separati (key=value) Contiene ; host=localhost;port=5432;dbname=mydb;user=postgres;password=secret
psql riga di comando psql psql -h host -p 5432 -U user -d dbname
Esportazioni di variabili di ambiente export export PGHOST=localhost seguito da PGPORT, PGUSER, PGDATABASE, PGPASSWORD
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")

Il parser estrae host, utente, porta, database e password da tutti i formati. Se un campo password è già compilato nella finestra di dialogo, il parser mantiene il valore esistente.

Note

Dopo il parsing, puoi comunque aprire il riquadro Avanzate per configurare impostazioni che le stringhe di connessione non includono, come i tunnel SSH o la modalità di accesso all’IA per singola connessione (modalità di accesso a Copilot in Visual Studio Code, modalità di accesso all’IA in Cursor).

Configurare i file di certificato

Usa le impostazioni del file del certificato nella sezione a fisarmonica SSL del riquadro Impostazioni di connessione avanzate quando il tuo ambiente richiede TLS reciproco o la convalida esplicita dell'autorità di certificazione.

Modalità del certificato radice SSL

L'elenco a discesa Modalità del certificato radice SSL determina il modo in cui l'estensione fornisce il certificato della CA radice. Scegliere uno dei seguenti valori:

Modalità Behavior
Nessuno Non viene utilizzato alcun certificato radice. L'estensione non verifica la catena di certificati del server.
Sistema L'estensione utilizza l'archivio dei certificati attendibile del sistema operativo. Questa modalità richiede la modalità Verify-Full SSL; l'estensione applica automaticamente questa impostazione.
File personalizzato Viene visualizzato un campo di testo con etichetta nome file certificato radice SSL . Immettere il percorso di un file di certificato CA radice con codifica PEM.

Importante

Quando si seleziona Sistema, la modalità SSL è impostata su Verify-Full automaticamente. Se si imposta la modalità SSL su un altro valore mentre System è attivo, viene visualizzato un errore di convalida: "Verify-Full modalità SSL è necessaria quando si usa l'archivio certificati di sistema".

Campi del certificato client

Configurare TLS reciproco specificando i percorsi in questi campi all'interno della sezione SSL :

Etichetta del campo Property Descrizione
Nome file certificato SSL sslcert Percorso del file del certificato client.
Nome del file della chiave SSL sslkey Percorso del file di chiave privata del client.
Nome del file del certificato radice SSL sslrootcert Percorso del certificato CA radice (visibile solo quando la modalità certificato radice SSL è File personalizzato).
Nome del file CRL SSL sslcrl Percorso del file della lista di revoca dei certificati.
Usare la compressione SSL sslcompression Abilita la compressione sulla connessione SSL.

Tip

Per le modalità Verify-CA e Verify-Full , configurare sempre il certificato radice in modo che l'estensione possa convalidare il certificato del server. Usare la modalità sistema per fare affidamento sull'archivio CA attendibile del sistema operativo senza specificare un percorso di file.

Connettersi tramite un tunnel SSH

Il tunneling SSH instrada la connessione PostgreSQL tramite un canale SSH crittografato. Usare questo approccio quando il database non è raggiungibile direttamente dalla workstation. Ad esempio, quando il server si trova in una rete privata dietro un bastion host.

Abilitare il tunnel

  1. Aprire la finestra di dialogo di connessione e selezionare Avanzate per aprire il pannello Impostazioni di connessione avanzate .
  2. Espandi la sezione SSH Tunnel a fisarmonica.
  3. Selezionare l'interruttore Enable SSH Tunneling (Abilita tunneling SSH ). Vengono visualizzati i campi di connessione SSH.

Campi del tunnel SSH

Etichetta del campo Descrizione
host Nome host o indirizzo IP del server SSH (bastion host).
porto Numero di porta del server SSH (impostazione predefinita: 22).
username Nome utente per l'autenticazione con il server SSH.
Autenticazione Metodo di autenticazione SSH. Scegliere Password, File di identità o Agente SSH.

I campi rimanenti cambiano a seconda del metodo di autenticazione selezionato:

Metodo di autenticazione Campi aggiuntivi visualizzati
Password password/passphrase: immettere la password SSH. Salva la casella di controllo Password/Passphrase per rendere persistenti le credenziali.
File di identità File di identità: immettere il percorso completo della chiave privata SSH , ad esempio ~/.ssh/id_ed25519. password/passphrase: immettere la passphrase della chiave se la chiave privata è crittografata. Casella di controllo Salva password/Passphrase.
Agente SSH Nessun campo aggiuntivo. L'estensione delega l'autenticazione all'agente SSH del sistema (ssh-agent in macOS e Linux, il servizio OpenSSH Authentication Agent in Windows).

Funzionamento del tunnel

Quando il tunnel SSH è abilitato, l'estensione stabilisce prima la connessione SSH, configura un inoltro di porta locale e quindi si connette a PostgreSQL attraverso tale inoltro. Per questo motivo:

  • Il nome del server nei campi di connessione principale deve essere l'indirizzo del database, come illustrato dall'host SSH, che è spesso localhost o un INDIRIZZO IP privato.
  • La porta deve essere la porta PostgreSQL sull'host di destinazione (in genere 5432).
  • L'istituzione del tunnel SSH aggiunge la latenza di connessione. Prendere in considerazione l'aumento del valore di timeout di connessione nelle opzioni avanzate se si verificano timeout.

Scegliere l'opzione avanzata appropriata

Scenario Funzionalità consigliata
Hai un URI PostgreSQL esistente, uno snippet dell'app o un psql comando esistente Selezionare la scheda Stringa di connessione per popolare automaticamente i campi.
L'organizzazione richiede file ca personalizzati o TLS reciproco Configurare i campi certificato SSL nella sezione SSL del pannello avanzato.
È necessario usare l'archivio certificati del sistema operativo per la verifica del server Impostare la modalità del certificato radice SSL su Sistema e la modalità SSL su Verify-Full.
Il database è raggiungibile solo tramite un jump box o un bastion host Abilitare il tunnel SSH nella sezione Tunnel SSH del pannello avanzato.