Zaawansowane opcje połączenia

W tym artykule opisano zaawansowane funkcje połączenia w rozszerzeniu PostgreSQL dla Visual Studio Code. Użyj tych opcji, jeśli musisz ponownie użyć istniejącej parametry połączenia, podać pliki certyfikatów w celu bardziej rygorystycznej weryfikacji protokołu TLS lub nawiązać połączenie za pośrednictwem hosta bastionu z tunelem SSH.

Wskazówka

Aby uzyskać informacje na temat uwierzytelniania standardowego, wyboru trybu SSL, grup serwerów i zapisanych połączeń, zobacz Połączenia i tożsamość.

Użyj trybu wprowadzania parametrów połączenia

Wybierz kartę Parametry połączenia (w obszarze Połącz za pośrednictwem:) w oknie dialogowym połączenia, aby wkleić istniejącą definicję połączenia. Rozszerzenie automatycznie parsuje ciąg znaków i wypełnia pola połączenia.

Strona używa układu dwukolumna:

  • Lewa kolumna: obszar tekstowy z etykietą Parametry połączenia , w którym wklejasz parametry. Wskazówka pod polem tekstowym brzmi: Pomiń hasło w parametrach połączenia.
  • Prawa kolumna: panel Szczegóły połączenia tylko do odczytu, który pokazuje przeanalizowaną nazwę serwera, nazwę użytkownika i wartości nazwy bazy danych podczas ich wyodrębniania.

Analizowanie odbywa się na żywo podczas wpisywania lub wklejania. Jeśli analizator wykryje brakujący serwer lub wartość użytkownika, zostanie wyświetlony błąd walidacji powyżej obszaru tekstowego.

Obsługiwane formaty

Rozszerzenie rozpoznaje dziewięć formatów parametry połączenia:

Format Prefiks lub wyzwalacz Example
PostgreSQL URI postgres:// lub postgresql:// postgresql://user:password@host:5432/dbname?sslmode=require
JDBC jdbc:postgresql:// jdbc:postgresql://host:5432/dbname
Oddzielone średnikami (key=value) Zawiera ; host=localhost;port=5432;dbname=mydb;user=postgres;password=secret
psql wiersz polecenia psql psql -h host -p 5432 -U user -d dbname
Eksporty zmiennych środowiskowych export export PGHOST=localhost następnie 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")

Analizator wyodrębnia hosta, użytkownika, port, bazę danych i hasło ze wszystkich formatów. Jeśli pole hasła jest już wypełnione w oknie dialogowym, analizator zachowuje istniejącą wartość.

Note

Po przeanalizowaniu można nadal otworzyć panel Zaawansowane, aby skonfigurować ustawienia, których nie zawierają parametry połączenia, takie jak tunele SSH lub tryb dostępu AI dla danego połączenia (tryb dostępu Copilot w Visual Studio Code, tryb dostępu AI w Cursor).

Konfigurowanie plików certyfikatów

Użyj ustawień pliku certyfikatu w sekcji SSL panelu Zaawansowane ustawienia połączeń, gdy środowisko wymaga uwierzytelniania wzajemnego TLS lub jawnej weryfikacji urzędu certyfikacji.

Tryb certyfikatu głównego SSL

Lista rozwijana Tryb certyfikatu głównego SSL określa, w jaki sposób rozszerzenie udostępnia certyfikat głównego urzędu certyfikacji. Wybierz jedną z następujących wartości:

Tryb Behavior
Brak Nie jest używany certyfikat główny. Rozszerzenie nie weryfikuje łańcucha certyfikatów serwera.
System Rozszerzenie korzysta z zaufanego magazynu certyfikatów systemu operacyjnego. Ten tryb wymaga trybu Verify-Full SSL; rozszerzenie wymusza to automatycznie.
Plik niestandardowy Zostanie wyświetlone pole tekstowe oznaczone nazwą głównego certyfikatu SSL . Wprowadź ścieżkę do pliku certyfikatu głównego urzędu certyfikacji zakodowanego w formacie PEM.

Ważna

Po wybraniu opcji System tryb SSL jest automatycznie ustawiany na Pełna weryfikacja. Jeśli zmienisz tryb SSL na inną wartość, gdy system jest aktywny, zostanie wyświetlony błąd weryfikacji: "Verify-Full tryb SSL jest wymagany podczas korzystania z systemowego magazynu certyfikatów".

Pola certyfikatu klienta

Skonfiguruj wzajemne protokoły TLS, podając ścieżki w tych polach w sekcji SSL :

Etykieta pola Property Opis
Nazwa pliku certyfikatu SSL sslcert Ścieżka do pliku certyfikatu klienta.
Nazwa pliku klucza SSL sslkey Ścieżka do pliku klucza prywatnego klienta.
Nazwa pliku certyfikatu głównego SSL sslrootcert Ścieżka do głównego certyfikatu urzędu certyfikacji (widoczna tylko wtedy, gdy tryb głównego certyfikatu SSL to Plik niestandardowy).
Nazwa pliku listy CRL SSL sslcrl Ścieżka do pliku listy odwołania certyfikatów.
Korzystanie z kompresji SSL sslcompression Włącza kompresję połączenia SSL.

Wskazówka

W przypadku trybów Verify-CA i Verify-Full należy zawsze skonfigurować certyfikat główny, aby rozszerzenie mógł zweryfikować certyfikat serwera. Użyj trybu systemowego , aby polegać na zaufanym magazynie zaufanego urzędu certyfikacji systemu operacyjnego bez określania ścieżki pliku.

Nawiązywanie połączenia za pośrednictwem tunelu SSH

Tunelowanie SSH kieruje połączenie PostgreSQL za pośrednictwem zaszyfrowanego kanału SSH. Użyj tej metody, gdy baza danych nie jest bezpośrednio osiągalna z poziomu stacji roboczej. Na przykład, gdy serwer znajduje się w sieci prywatnej za hostem bastionowym.

Włączanie tunelu

  1. Otwórz okno dialogowe połączenia i wybierz pozycję Zaawansowane , aby otworzyć szufladę Ustawienia połączeń zaawansowanych .
  2. Rozwiń sekcję Akordeon tunelu SSH .
  3. Zaznacz przełącznik Włącz tunelowanie SSH . Zostanie wyświetlone pola połączenia SSH.

Pola tunelu SSH

Etykieta pola Opis
hosta Nazwa hosta lub adres IP serwera SSH (hosta bastionu).
port Numer portu serwera SSH (wartość domyślna: 22).
nazwa użytkownika Nazwa użytkownika do uwierzytelniania za pomocą serwera SSH.
Authentication Metoda uwierzytelniania SSH. Wybierz Hasło, Plik identyfikacyjny lub Agent SSH.

Pozostałe pola zmieniają się w zależności od wybranej metody uwierzytelniania:

Metoda uwierzytelniania Wyświetlane dodatkowe pola
Hasło hasło/hasło: wprowadź hasło SSH. Pole wyboru Zapisz hasło/hasło , aby utrwalić poświadczenia.
Plik tożsamości Plik tożsamości: wprowadź pełną ścieżkę do klucza prywatnego SSH (na przykład ~/.ssh/id_ed25519). hasło/hasło: wprowadź hasło klucza, jeśli klucz prywatny jest zaszyfrowany. Pole wyboru Zapisz hasło/hasło szyfrujące.
SSH Agent Brak dodatkowych pól. Rozszerzenie powierza uwierzytelnianie systemowemu agentowi SSH (ssh-agent w systemach macOS i Linux oraz usłudze OpenSSH Authentication Agent w systemie Windows).

Jak działa tunel

Po włączeniu tunelu SSH rozszerzenie najpierw ustanawia połączenie SSH, tworzy lokalne przekierowanie portu, a następnie łączy się z bazą danych PostgreSQL przez to przekierowanie. Z tego powodu:

  • Nazwa serwera w głównych polach połączenia powinna być adresem bazy danych widzianym z hosta SSH, którym często jest localhost lub prywatny adres IP.
  • Port powinien być portem Bazy danych PostgreSQL na hoście docelowym (zazwyczaj 5432).
  • Utworzenie tunelu SSH zwiększa opóźnienie połączenia. Rozważ zwiększenie wartości limitu czasu połączenia w opcjach zaawansowanych, jeśli wystąpią przekroczenia limitu czasu.

Wybieranie odpowiedniej opcji zaawansowanej

Scenario Zalecana funkcja
Masz istniejący URI PostgreSQL, fragment kodu aplikacji lub polecenie psql Wybierz kartę Parametry połączenia , aby automatycznie wypełnić pola.
Twoja organizacja wymaga niestandardowych plików CA lub wzajemnego uwierzytelniania TLS Skonfiguruj pola certyfikatu SSL w sekcji SSL w zaawansowanym panelu wysuwanym.
Do weryfikacji serwera należy użyć magazynu certyfikatów systemu operacyjnego Ustaw tryb głównego certyfikatu SSL na System i tryb SSL na Verify-Full.
Baza danych jest dostępna tylko za pośrednictwem serwera pośredniczącego lub hosta bastionowego Włącz tunel SSH w sekcji Tunel SSH w panelu zaawansowanym.