Rozšířené možnosti připojení

Tento článek popisuje pokročilé funkce připojení v rozšíření PostgreSQL pro Visual Studio Code. Tyto možnosti použijte v případě, že potřebujete znovu použít existující připojovací řetězec, zadat soubory certifikátů pro přísnější ověřování PROTOKOLU TLS nebo se připojit přes hostitele bastionu pomocí tunelu SSH.

Tip

Standardní ověřování, výběr režimu SSL, skupiny serverů a uložená připojení najdete v tématu Připojení a identita.

Použijte režim zadání připojovacího řetězce

V dialogovém okně připojení vyberte kartu Připojovací řetězec (v části Připojit přes:) a vložte existující definici připojení. Rozšíření analyzuje řetězec automaticky a naplní propojovací pole.

Stránka používá rozložení se dvěma sloupci:

  • Levý sloupec: textová oblast označená připojovacím řetězcem , kam řetězec vložíte. Nápověda pod textovou oblastí uvádí: Vynechte prosím heslo z připojovacího řetězce.
  • Pravý sloupec: panel Podrobnosti o připojení jen pro čtení, který zobrazuje analyzovaný název serveru, uživatelské jméno a hodnoty název databáze při extrahování.

Analýza probíhá živě při psaní nebo vkládání. Pokud analyzátor zjistí chybějící hodnotu serveru nebo uživatele, zobrazí se chyba ověření nad textovou oblastí.

Podporované formáty

Rozšíření rozpozná devět formátů připojovací řetězec:

Format Předpona nebo spouštěč Příklad
PostgreSQL URI postgres:// nebo postgresql:// postgresql://user:password@host:5432/dbname?sslmode=require
JDBC jdbc:postgresql:// jdbc:postgresql://host:5432/dbname
Oddělený středníkem (klíč=hodnota) Obsahuje ; host=localhost;port=5432;dbname=mydb;user=postgres;password=secret
psql příkazový řádek psql psql -h host -p 5432 -U user -d dbname
Exportování proměnných prostředí export export PGHOST=localhost následované 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")

Analyzátor extrahuje hostitele, uživatele, port, databázi a heslo ze všech formátů. Pokud už je v dialogovém okně vyplněné pole hesla, analyzátor zachová stávající hodnotu.

Note

Po zpracování můžete stále otevřít panel Advanced a nakonfigurovat nastavení, která připojovací řetězce neobsahují, například tunely SSH nebo režim přístupu AI pro jednotlivá připojení (režim přístupu Copilot ve Visual Studio Code, režim přístupu AI v Cursoru).

Konfigurace souborů certifikátů

Pokud vaše prostředí vyžaduje vzájemné ověřování TLS nebo explicitní ověření certifikační autority, použijte nastavení souborů certifikátů v rozbalovací části SSL panelu Pokročilá nastavení připojení.

Režim kořenového certifikátu SSL

Rozevírací seznam režimu kořenového certifikátu SSL určuje, jak rozšíření poskytuje certifikát kořenové certifikační autority. Zvolte jednu z následujících hodnot:

Mode Behavior
Nic Nepoužívá se žádný kořenový certifikát. Rozšíření neověřuje řetěz certifikátů serveru.
System Rozšíření používá úložiště důvěryhodných certifikátů vašeho operačního systému. Tento režim vyžaduje režim Verify-Full SSL; rozšíření to vynucuje automaticky.
Vlastní soubor Zobrazí se textové pole s názvem název kořenového certifikátu SSL . Zadejte cestu k souboru certifikátu kořenové certifikační autority s kódováním PEM.

Important

Když vyberete System, režim SSL se automaticky nastaví na Verify-Full. Pokud změníte režim SSL na jinou hodnotu, když je systém aktivní, zobrazí se chyba ověření: "Verify-Full režim SSL je vyžadován při použití systémového úložiště certifikátů."

Pole klientského certifikátu

Konfigurace vzájemného protokolu TLS poskytnutím cest v těchto polích v části SSL :

Popisek pole Property Popis
Název souboru certifikátu SSL sslcert Cesta k souboru klientského certifikátu.
Název souboru klíče SSL sslkey Cesta k souboru privátního klíče klienta
Název souboru kořenového certifikátu SSL sslrootcert Cesta ke kořenovému certifikátu certifikační autority (viditelná pouze tehdy, když je režim kořenového certifikátu SSL nastaven na Vlastní soubor).
Název souboru SSL CRL sslcrl Cesta k souboru seznamu odvolaných certifikátů
Použití komprese SSL sslcompression Povolí kompresi pro připojení SSL.

Tip

Pro režimy Verify-CA a Verify-Full vždy nakonfigurujte kořenový certifikát, aby rozšíření mohl ověřit certifikát serveru. Režim systému použijte k závislosti na důvěryhodném úložišti certifikační autority vašeho operačního systému bez zadání cesty k souboru.

Pokročilé parametry SSL

Některé spravované služby PostgreSQL vynucují TLS, ale odmítají výchozí způsob navázání spojení používaný rozšířením. Tyto parametry nakonfigurujte pro navázání připojení v části SSL panelu Upřesňující nastavení připojení. Každý parametr má výchozí hodnotu Default, který ponechá parametr bez nastavení a zachová předchozí chování.

Popisek pole Property Hodnoty Použijte ji, když
Režim certifikátu SSL sslcertmode Výchozí, Zakázat, Povolit, Vyžadovat Server vyžaduje protokol SSL, ale odmítne klientský certifikát. Pokud chcete ukončit odesílání, nastavte možnost Zakázat .
Navázání kanálu channel_binding Výchozí, Zakázáno, Upřednostnit, Vyžadováno Server vyžaduje vypnutí vazby kanálu SCRAM. Nastavte na Zakázat.
Vyjednávání SSL sslnegotiation Výchozí, Postgres, Direct Musíte řídit způsob vyjednávání metody handshake protokolu TLS.
SSL SNI sslsni Výchozí, Zapnuto, Vypnuto Koncový bod je citlivý na rozšíření TLS Server Name Indication.
Minimální verze protokolu TLS ssl_min_protocol_version Výchozí, TLS v1 až TLS verze 1.3 Musíte připnout minimální verzi protokolu TLS.
Maximální verze protokolu TLS ssl_max_protocol_version Výchozí, TLS v1 až TLS verze 1.3 Musíte připnout maximální verzi protokolu TLS.

Výstraha

Tato nastavení jsou přepsání kompatibility – ponechte je ve výchozím nastavení , pokud konkrétní server nevyžaduje jinak. Zakázání vazby kanálu nebo SNI protokolu SSL nebo povolení starších verzí PROTOKOLU TLS (TLS v1 nebo TLS verze 1.1) snižuje zabezpečení připojení ve srovnání s výchozími nastaveními.

Note

Backend pro připojení, který je součástí rozšíření, zpřístupňuje tato nastavení. Pokud je v části SSL nevidíte, aktualizujte je na verzi rozšíření PostgreSQL, jejíž back-end je inzeruje.

Připojení k AWS Aurora RDS for PostgreSQL

Pro instanci Aurora RDS (nebo RDS), která vyžaduje šifrování, ale odmítá vyjednávání klientských certifikátů:

  1. Nastavte režim SSL na Vyžadovat.
  2. Nastavte režim certifikátu SSL na Zakázat.

Tato konfigurace odpovídá nastavením libpq sslmode=require a sslcertmode=disable (proměnným prostředí PGSSLMODE a PGSSLCERTMODE).

Připojení k flexibilnímu serveru Azure Database for PostgreSQL

Pokud ověřování selhává, dokud není Vazba kanálu zakázána, nastavte Vazba kanálu na Zakázat.

Tato konfigurace zrcadlí channel_binding=disable (proměnná PGCHANNELBINDING prostředí).

Note

Ponechte libovolný parametr ve výchozím nastavení , který chcete vynechat. Rozšíření odesílá jenom parametry, které změníte, takže stávající připojení nejsou ovlivněná.

Připojení přes tunel SSH

Tunelování SSH směruje připojení PostgreSQL přes šifrovaný kanál SSH. Tento přístup použijte v případě, že databáze není přímo dostupná z pracovní stanice. Například když se server nachází v soukromé síti za bastionovým hostitelem.

Povolení tunelu

  1. Otevřete dialogové okno připojení a kliknutím na Pokročilé otevřete panel Pokročilá nastavení připojení.
  2. Rozbalte sekci akordeonu SSH Tunnel.
  3. Zkontrolujte přepínač Povolit tunelování SSH . Zobrazí se pole připojení SSH.

Pole tunelového propojení SSH

Popisek pole Popis
hostitel Název hostitele nebo IP adresa serveru SSH (hostitel bastionu).
přístav Číslo portu serveru SSH (výchozí hodnota: 22).
uživatelské jméno Uživatelské jméno pro ověření pomocí serveru SSH.
Authentication Metoda ověřování SSH. Zvolte Heslo, Soubor identity, nebo Agent SSH.

Zbývající pole se mění v závislosti na vybrané metodě ověřování:

Metoda ověřování Další zobrazená pole
Heslo heslo/heslo: zadejte heslo SSH. Zaškrtávací políčko Uložit heslo / přístupovou frázi pro uložení přihlašovacích údajů.
Soubor identity Soubor identity: Zadejte úplnou cestu k privátnímu klíči SSH (například ~/.ssh/id_ed25519). heslo/heslo: Pokud je privátní klíč zašifrovaný, zadejte heslo klíče. Zaškrtávací políčko „Uložit heslo/heslovou frázi“
SSH Agent Žádná další pole. Rozšíření deleguje ověřování na agenta SSH vašeho systému (ssh-agentv systému macOS a Linux, ve službě agenta ověřování OpenSSH na Windows).

Jak funguje tunel

Když je tunel SSH povolený, rozšíření nejprve naváže spojení SSH, nastaví místní přesměrování portu a pak se připojí k PostgreSQL přes toto přesměrování. Z tohoto důvodu:

  • Název serveru v polích hlavního připojení by měl být adresa databáze, jak je vidět na hostiteli SSH, což je často localhost nebo privátní IP adresa.
  • Port by měl být portEm PostgreSQL na cílovém hostiteli (obvykle5432).
  • Vytvoření tunelu SSH přidává latenci připojení. Pokud dojde k vypršení časového limitu, zvažte zvýšení hodnoty časového limitu připojení v rozšířených možnostech.

Vyberte správnou pokročilou možnost

Scenario Doporučená funkce
Máte existující identifikátor URI PostgreSQL, fragment kódu aplikace nebo psql příkaz. Vyberte kartu Připojovací řetězec, aby se pole vyplnila automaticky.
Vaše organizace vyžaduje vlastní soubory CA nebo vzájemné tls. Nakonfigurujte pole certifikátu SSL v části SSL rozšířené zásuvky.
K ověření serveru je potřeba použít úložiště certifikátů operačního systému. Nastavte režim kořenového certifikátu SSL na systém a režim SSL tak, aby se ověřilo jako úplné.
Spravovaný server (například AWS Aurora RDS) vyžaduje SSL, ale odmítne klientský certifikát. Nastavte režim SSL na Vyžadovat a režim certifikátu SSL tak, aby se zakázal v části SSL .
Azure Database for PostgreSQL Flexible Server odmítá ověřování, dokud není channel binding vypnutý. Nastavte vazbu kanálu na Zakázat v oddílu SSL .
Databáze je přístupná pouze přes jump box nebo bastion host. V rozšířeném panelu povolte tunel SSH v části Tunel SSH.