Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Otwórz okno dialogowe połączenia i wybierz pozycję Zaawansowane , aby otworzyć szufladę Ustawienia połączeń zaawansowanych .
- Rozwiń sekcję Akordeon tunelu SSH .
- 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
localhostlub 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. |