Gelişmiş bağlantı seçenekleri

Bu makale, Visual Studio Code için PostgreSQL uzantısındaki gelişmiş bağlantı özelliklerini kapsar. Mevcut bir bağlantı dizesi yeniden kullanmanız, daha katı TLS doğrulaması için sertifika dosyaları sağlamanız veya SSH tüneliyle bir savunma konağı üzerinden bağlanmanız gerektiğinde bu seçenekleri kullanın.

Tip

Standart kimlik doğrulaması, SSL modu seçimi, sunucu grupları ve kaydedilmiş bağlantılar için bkz. Bağlantılar ve kimlik.

Bağlantı dizesi giriş modunu kullanın

Var olan bir bağlantı tanımını yapıştırmak için bağlantı iletişim kutusunda Bağlantı Dizesi sekmesini (Bağlantı yoluyla bağlan: altında) seçin. Uzantı dizeyi otomatik olarak ayrıştırarak bağlantı alanlarını doldurur.

Sayfada iki sütunlu bir düzen kullanılır:

  • Sol sütun: Dizeyi yapıştırdığınız Bağlantı Dizesi etiketli bir metin alanı. Metin alanının altında Lütfen parolayı bağlantı dizesine eklemeyin yazan bir ipucu bulunur.
  • Sağ sütun: ayıklandıkça ayrıştırılan Sunucu adı, Kullanıcı adı ve Veritabanı adı değerlerini gösteren, salt okunur Bağlantı Ayrıntıları paneli.

Yazarken veya yapıştırırken çözümleme anında yapılır. Ayrıştırıcı eksik bir sunucu veya kullanıcı değeri algılarsa, metin alanının üstünde bir doğrulama hatası görüntülenir.

Desteklenen biçimler

Uzantı dokuz bağlantı dizesi biçimi tanır:

Format Ön ek veya tetikleyici Example
PostgreSQL URI'sı postgres:// veya postgresql:// postgresql://user:password@host:5432/dbname?sslmode=require
JDBC jdbc:postgresql:// jdbc:postgresql://host:5432/dbname
Noktalı virgüllerle ayrılmış (key=value) ; içerir host=localhost;port=5432;dbname=mydb;user=postgres;password=secret
psql komut satırı psql psql -h host -p 5432 -U user -d dbname
Ortam değişkeni dışa aktarmaları export export PGHOST=localhost PGPORTve ardından , 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")

Ayrıştırıcı tüm biçimlerden konak, kullanıcı, bağlantı noktası, veritabanı ve parola çıkarır. İletişim kutusunda zaten bir parola alanı doldurulmuşsa, ayrıştırıcı mevcut değeri korur.

Note

Ayrıştırmanın ardından, bağlantı dizelerinde bulunmayan ayarları (örneğin SSH tünelleri veya bağlantı başına YZ erişim modu; Visual Studio Code’da Copilot erişim modu, Cursor’da YZ erişim modu) yapılandırmak için Gelişmiş çekmecesini yine de açabilirsiniz.

Sertifika dosyalarını yapılandırma

Ortamınız karşılıklı TLS veya açık sertifika yetkilisi doğrulaması gerektirdiğinde Gelişmiş Bağlantı Ayarları çekmecesinin SSL akordeonu bölümündeki sertifika dosyası ayarlarını kullanın.

SSL kök sertifika modu

SSL kök sertifika modu açılan listesi, uzantının kök CA sertifikasını nasıl sağladığını denetler. Aşağıdaki değerlerden birini seçin:

Mode Davranış
Hiçbiri Kök sertifikası kullanılmaz. Uzantı, sunucu sertifika zincirini doğrulamaz.
Sistem Uzantı, işletim sisteminizin güvenilen sertifika depounu kullanır. Bu mod , Verify-Full SSL modunu gerektirir; uzantı bunu otomatik olarak zorlar.
Özel dosya SSL kök sertifika dosya adı etiketli bir metin alanı görüntülenir. PEM ile kodlanmış kök CA sertifika dosyasının yolunu girin.

Important

Sistem'i seçtiğinizde SSL modu Otomatik olarak Doğrula-Tam olarak ayarlanır. Sistem etkinken SSL modunu başka bir değerle değiştirirseniz bir doğrulama hatası görüntülenir: "Sistem sertifika deposu kullanılırken SSL moduVerify-Full gereklidir."

İstemci sertifikası alanları

SSL bölümünde bu alanlarda yollar sağlayarak karşılıklı TLS'yi yapılandırın:

Alan adı Property Açıklama
SSL sertifikası dosya adı sslcert İstemci sertifikası dosyasının yolu.
SSL anahtarı dosya adı sslkey İstemcinin özel anahtar dosyasının yolu.
SSL kök sertifika dosya adı sslrootcert Kök CA sertifikasının yolu (yalnızca SSL kök sertifika moduÖzel dosya olduğunda görünür).
SSL CRL dosya adı sslcrl Sertifika iptal listesi dosyasının yolu.
SSL sıkıştırmayı kullanma sslcompression SSL bağlantısında sıkıştırmayı etkinleştirir.

Tip

Verify-CA ve Verify-Full modları için, uzantının sunucu sertifikasını doğrulayabilmesi için kök sertifikayı her zaman yapılandırın. Bir dosya yolu belirtmeden işletim sisteminizin güvenilen CA deposuna güvenmek için Sistem modunu kullanın.

Gelişmiş SSL parametreleri

Bazı yönetilen PostgreSQL hizmetleri TLS'yi zorunlu kılmasına karşın uzantının varsayılan anlaşmasını reddeder. Bağlanmak için Gelişmiş Bağlantı Ayarları çekmecesinin SSL bölümünde bu parametreleri yapılandırın. Her parametre varsayılan olarak Varsayılan'a ayarlı olur ve parametreyi ayarsız bırakır ve önceki davranışı korur.

Alan adı Property Değer Şu durumlarda kullanın:
SSL sertifika modu sslcertmode Varsayılan, Devre Dışı Bırak, İzin Ver, Gerektir Sunucu SSL gerektirir ancak istemci sertifikasını reddeder. Göndermeyi durdurmak için Devre dışı bırak olarak ayarlayın.
Kanal bağlama channel_binding Varsayılan, Devre Dışı Bırak, Tercih Et, Gerektir Sunucunun SCRAM kanalı bağlamasının kapalı olması gerekir. Devre Dışı Bırak olarak ayarlayın.
SSL anlaşması sslnegotiation Varsayılan, Postgres, Doğrudan TLS el sıkışmasının nasıl yapıldığını denetlemeniz gerekir.
SSL SNI sslsni Varsayılan, Açık, Kapalı Uç nokta TLS Sunucu Adı Göstergesi uzantısına duyarlıdır.
En düşük TLS protokolü sürümü ssl_min_protocol_version Varsayılan, TLS v1 ile TLS v1.3 arasında En düşük TLS sürümünü sabitlemeniz gerekir.
En yüksek TLS protokolü sürümü ssl_max_protocol_version Varsayılan, TLS v1 ile TLS v1.3 arasında En yüksek TLS sürümünü sabitlemeniz gerekir.

Warning

Bu ayarlar uyumluluk geçersiz kılmalarıdır; belirli bir sunucu aksini gerektirmediği sürece bunları Varsayılan olarak tutun. Kanal bağlamasını veya SSL SNI'yi devre dışı bırakmak veya eski TLS sürümlerine (TLS v1 veya TLS v1.1) izin vermek, varsayılanlarla karşılaştırıldığında bağlantının güvenliğini düşürür.

Note

Uzantıyla birlikte gelen arka uç bağlantı bileşeni bu ayarları görüntüler. Bunları SSL bölümünde görmüyorsanız, birlikte gelen arka ucun bunları desteklediğini belirttiği bir PostgreSQL uzantısı sürümüne güncelleyin.

PostgreSQL için AWS Aurora RDS'ye bağlanma

Şifreleme gerektiren ancak istemci sertifikası anlaşmasını reddeden bir Aurora RDS (veya RDS) örneği için:

  1. SSL modunuGerekli olarak ayarlayın.
  2. SSL sertifika modunuDevre Dışı Bırak olarak ayarlayın.

Bu yapılandırma, libpq ayarlarını sslmode=require ve sslcertmode=disable ( PGSSLMODE ve PGSSLCERTMODE ortam değişkenlerini) yansıtır.

PostgreSQL için Azure Veri Tabanı Flexible Server'a bağlanın

Kimlik doğrulama, kanal bağlama devre dışı bırakılana kadar başarısız oluyorsa, Kanal bağlama seçeneğini Devre Dışı olarak ayarlayın.

Bu yapılandırma, channel_binding=disable ile aynıdır (PGCHANNELBINDING ortam değişkeni).

Note

Herhangi bir parametreyi atlamak için Varsayılan'da bırakın. Uzantı yalnızca değiştirdiğiniz parametreleri gönderir, böylece mevcut bağlantılar etkilenmez.

SSH tüneli üzerinden bağlanma

SSH tüneli, PostgreSQL bağlantısını şifrelenmiş bir SSH kanalı üzerinden yönlendirir. Veritabanına iş istasyonunuzdan doğrudan ulaşılamıyorsa bu yaklaşımı kullanın. Örneğin, sunucu savunma konağının arkasındaki özel bir ağda bulunduğunda.

Tüneli etkinleştirme

  1. Bağlantı iletişim kutusunu açın ve Gelişmiş'i seçerek Gelişmiş Bağlantı Ayarları çekmecesini açın.
  2. SSH Tüneli akordeon bölümünü genişletin.
  3. SSH Tünellemeyi Etkinleştir seçeneğini işaretleyin. SSH bağlantı alanları görüntülenir.

SSH tünel alanları

Alan adı Açıklama
konak SSH sunucusunun ana makine adı veya IP adresi (bastion host).
bağlantı noktası SSH sunucusu bağlantı noktası numarası (varsayılan: 22).
kullanıcı adı SSH sunucusuyla kimlik doğrulaması için kullanıcı adı.
Authentication SSH kimlik doğrulama yöntemi. Parola, Kimlik Dosyası veya SSH Aracısı'nı seçin.

Seçili kimlik doğrulama yöntemine bağlı olarak kalan alanlar değişir:

Kimlik doğrulama yöntemi Gösterilen ek alanlar
Parola password/passphrase: SSH parolasını girin. Kimlik bilgilerini kalıcı hale getirmek için Parola/Parolayı Kaydet onay kutusu.
Kimlik Dosyası Kimlik dosyası: SSH özel anahtarınızın tam yolunu girin (örneğin, ~/.ssh/id_ed25519). password/passphrase: Özel anahtar şifrelenmişse anahtar parolasını girin. Parolayı/Parolayı Kaydet onay kutusu.
SSH Aracısı Ek alan yok. Uzantı, kimlik doğrulamasını sisteminizin SSH aracısına (ssh-agentmacOS ve Linux üzerinde, Windows'de OpenSSH Kimlik Doğrulama Aracısı hizmetine) devreder.

Tünel nasıl çalışır?

SSH tüneli etkinleştirildiğinde uzantı önce SSH bağlantısını kurar, yerel bir bağlantı noktası ileri doğru oluşturur ve ardından bu iletim aracılığıyla PostgreSQL'e bağlanır. Bu yüzden:

  • Ana bağlantı alanlarındaki Sunucu adı, genellikle veya özel bir IP olan localhost veritabanı adresi olmalıdır.
  • Bağlantı noktası hedef konakta PostgreSQL bağlantı noktası olmalıdır (genellikle 5432).
  • SSH tüneli oluşturma işlemi bağlantı gecikme süresi ekler. Zaman aşımları oluşursa gelişmiş seçeneklerde Bağlan zaman aşımı değerini artırmayı göz önünde bulundurun.

Doğru gelişmiş seçeneği belirleyin

Scenario Önerilen özellik
Mevcut bir PostgreSQL URI'niz, uygulama kod parçacığınız veya psql komutunuz var Alanları otomatik olarak doldurmak için Bağlantı Dizesi sekmesini seçin.
Kuruluşunuz için özel CA dosyaları veya karşılıklı TLS gerekiyor Gelişmiş çekmecenin SSL bölümünde SSL sertifika alanlarını yapılandırın.
Sunucu doğrulaması için işletim sistemi sertifika deponuzu kullanmanız gerekir SSL kök sertifika modunuSistem ve SSL modu'nuDoğrula-Tam olarak ayarlayın.
Yönetilen bir sunucu (örneğin AWS Aurora RDS) SSL gerektirir ancak istemci sertifikasını reddeder SSL modunuGerekli olarak, SSL sertifika modunu ise SSL bölümünde Devre Dışı olarak ayarlayın.
PostgreSQL için Azure Veri Tabanı Esnek Sunucu, kanal bağlama kapalı olana kadar kimlik doğrulamasını reddeder SSL bölümünde Kanal bağlamayıDevre Dışı Bırak olarak ayarlayın.
Veritabanına yalnızca bir atlama kutusu veya savunma konağı üzerinden erişilebilir Gelişmiş paneldeki SSH Tüneli bölümünde SSH tünelini etkinleştirin.