Geavanceerde verbindingsopties

In dit artikel worden de geavanceerde verbindingsfuncties in de PostgreSQL-extensie voor Visual Studio Code besproken. Gebruik deze opties wanneer u een bestaande verbindingsreeks opnieuw moet gebruiken, certificaatbestanden moet opgeven voor strengere TLS-validatie of verbinding wilt maken via een bastionhost met een SSH-tunnel.

Tip

Zie Verbindingen en identiteit voor standaardverificatie, selectie van SSL-modus, servergroepen en opgeslagen verbindingen.

Invoermodus voor verbindingsreeks gebruiken

Selecteer het tabblad Verbindingsreeks (onder Verbinding maken via:) in het verbindingsdialoogvenster om een bestaande verbindingsdefinitie te plakken. De extensie parseert de tekenreeks automatisch en vult de verbindingsvelden in.

De pagina maakt gebruik van een indeling met twee kolommen:

  • Linkerkolom: een tekstgebied met het label Verbindingsreeks waarin u de tekenreeks plakt. Een aanwijzing onder het tekstvak luidt Laat het wachtwoord weg uit de verbindingsreeks.
  • Rechterkolom: een deelvenster alleen-lezen verbindingsdetails waarin de geparseerde servernaam, gebruikersnaam en databasenaamwaarden worden weergegeven wanneer ze worden geëxtraheerd.

Parseren vindt live plaats terwijl u typt of plakt. Als de parser een ontbrekende server of gebruikerswaarde detecteert, wordt er een validatiefout boven het tekstgebied weergegeven.

Ondersteunde indelingen

De extensie herkent negen verbindingsreeks-indelingen:

Format Voorvoegsel of triggerwaarde Example
PostgreSQL URI postgres:// of postgresql:// postgresql://user:password@host:5432/dbname?sslmode=require
JDBC jdbc:postgresql:// jdbc:postgresql://host:5432/dbname
Door puntkomma's gescheiden (sleutel=waarde) Bevat ; host=localhost;port=5432;dbname=mydb;user=postgres;password=secret
psql opdrachtregel psql psql -h host -p 5432 -U user -d dbname
Export van omgevingsvariabelen export export PGHOST=localhostgevolgd door PGPORT, PGUSER, , PGDATABASEPGPASSWORD
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")

De parser extraheert host, gebruiker, poort, database en wachtwoord uit alle indelingen. Als er al een wachtwoordveld is ingevuld in het dialoogvenster, blijft de bestaande waarde behouden.

Note

Na het parseren kunt u nog steeds de geavanceerde lade openen om instellingen te configureren die verbindingsreeksen niet bevatten, zoals SSH-tunnels of de AI-toegangsmodus per verbinding (Copilot toegangsmodus in Visual Studio Code, AI-toegangsmodus in Cursor).

Certificaatbestanden configureren

Gebruik de instellingen voor het certificaatbestand in het accordeongedeelte SSL van het venster Geavanceerde verbindingsinstellingen wanneer uw omgeving wederzijdse TLS of expliciete validatie van de certificaatautoriteit vereist.

SSL-basiscertificaatmodus

De vervolgkeuzelijst voor de ssl-basiscertificaatmodus bepaalt hoe de extensie het basis-CA-certificaat levert. Kies een van de volgende waarden:

Mode Gedrag
Geen Er wordt geen basiscertificaat gebruikt. De extensie controleert de servercertificaatketen niet.
Systeem De extensie maakt gebruik van het vertrouwde certificaatarchief van uw besturingssysteem. Voor deze modus is verificatie van de volledige SSL-modus vereist; de extensie dwingt dit automatisch af.
Aangepast bestand Er wordt een tekstveld met het label SSL-basiscertificaatbestand weergegeven. Voer het pad in naar een met PEM gecodeerd basis-CA-certificaatbestand.

Important

Wanneer u Systeem selecteert, wordt de SSL-modus automatisch ingesteld op Verifiëren-volledig . Als u de SSL-modus wijzigt in een andere waarde terwijl Het systeem actief is, wordt er een validatiefout weergegeven: 'Verify-Full SSL-modus is vereist bij het gebruik van het certificaatarchief van het systeem'.

Clientcertificaatvelden

Configureer wederzijdse TLS door paden op te geven in deze velden in de sectie SSL :

Veldlabel Property Beschrijving
Bestandsnaam van SSL-certificaat sslcert Pad naar het clientcertificaatbestand.
Bestandsnaam van SSL-sleutel sslkey Pad naar het persoonlijke sleutelbestand van de client.
Bestandsnaam van SSL-basiscertificaat sslrootcert Pad naar het root-CA-certificaat (alleen zichtbaar wanneer de modus voor het SSL-hoofdcertificaat is ingesteld op Aangepast bestand).
SSL CRL-bestandsnaam sslcrl Pad naar een certificaatintrekkingslijstbestand.
SSL-compressie gebruiken sslcompression Hiermee schakelt u compressie in voor de SSL-verbinding.

Tip

Voor de modi Verify-CA en Verify-Full configureert u altijd het basiscertificaat, zodat de extensie het servercertificaat kan valideren. Gebruik de systeemmodus om te vertrouwen op het vertrouwde CA-archief van uw besturingssysteem zonder een bestandspad op te geven.

Verbinding maken via een SSH-tunnel

Met SSH-tunneling wordt de PostgreSQL-verbinding gerouteerd via een versleuteld SSH-kanaal. Gebruik deze methode wanneer de database niet rechtstreeks bereikbaar is vanaf uw werkstation. Wanneer de server zich bijvoorbeeld in een privénetwerk achter een bastionhost bevindt.

De tunnel inschakelen

  1. Open het verbindingsdialoogvenster en selecteer Geavanceerd om de lade Geavanceerde verbindingsinstellingen te openen.
  2. Vouw de harmonikasectie SSH Tunnel uit.
  3. Schakel de wisselknop SSH-tunneling inschakelen in. De SSH-verbindingsvelden worden weergegeven.

SSH-tunnelvelden

Veldlabel Beschrijving
gastheer Hostnaam of IP-adres van de SSH-server (bastionhost).
poort Poortnummer van SSH-server (standaard: 22).
gebruikersnaam Gebruikersnaam voor verificatie met de SSH-server.
Authentication SSH-verificatiemethode. Kies wachtwoord, identiteitsbestand of SSH-agent.

De resterende velden worden gewijzigd, afhankelijk van de geselecteerde verificatiemethode:

Verificatiemethode Extra velden weergegeven
Wachtwoord wachtwoord/wachtwoordzin: voer het SSH-wachtwoord in. Selecteer het selectievakje Wachtwoord/wachtwoordzin opslaan om de aanmeldgegevens op te slaan.
Identiteitsbestand Identiteitsbestand: voer het volledige pad naar uw persoonlijke SSH-sleutel in (bijvoorbeeld ~/.ssh/id_ed25519). wachtwoord/wachtwoordzin: voer de wachtwoordzin voor de sleutel in als de persoonlijke sleutel is versleuteld. Selectievakje Wachtwoord / wachtwoordzin opslaan.
SSH-agent Geen extra velden. De extensie delegeert verificatie aan de SSH-agent van uw systeem (ssh-agentin macOS en Linux, OpenSSH Authentication Agent-service op Windows).

Hoe de tunnel werkt

Wanneer de SSH-tunnel is ingeschakeld, brengt de extensie eerst de SSH-verbinding tot stand, maakt vervolgens een lokale poortdoorschakeling en maakt daarna via die doorschakeling verbinding met PostgreSQL. Daarom:

  • De servernaam in de hoofdverbindingsvelden moet het databaseadres zijn , zoals te zien is vanaf de SSH-host, wat vaak localhost of een privé-IP-adres is.
  • De poort moet de PostgreSQL-poort op de doelhost zijn (meestal 5432).
  • SSH-tunnelinstelling voegt verbindingslatentie toe. Overweeg om de time-outwaarde voor verbinding in de geavanceerde opties te verhogen als er time-outs optreden.

De juiste geavanceerde optie kiezen

Scenario Aanbevolen functie
U hebt een bestaande PostgreSQL-URI, app-fragment of psql opdracht Selecteer het tabblad Verbindingsreeks om de velden automatisch te vullen.
Uw organisatie vereist aangepaste CA-bestanden of wederzijdse TLS Configureer de SSL-certificaatvelden in de SSL-sectie van de geavanceerde lade.
U moet het certificaatarchief van het besturingssysteem gebruiken voor serververificatie Stel de SSL-basiscertificaatmodus in op systeem - en SSL-modus om volledig te verifiëren.
De database is alleen bereikbaar via een jumpbox of bastionhost Schakel de SSH-tunnel in de sectie SSH-tunnel van de geavanceerde lade in.