Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ů:
- Nastavte režim SSL na Vyžadovat.
- 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
- Otevřete dialogové okno připojení a kliknutím na Pokročilé otevřete panel Pokročilá nastavení připojení.
- Rozbalte sekci akordeonu SSH Tunnel.
- 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
localhostnebo privátní IP adresa. -
Port by měl být portEm PostgreSQL na cílovém hostiteli (obvykle
5432). - 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. |