Opsi koneksi tingkat lanjut

Artikel ini membahas fitur koneksi tingkat lanjut di ekstensi PostgreSQL untuk Visual Studio Code. Gunakan opsi ini saat Anda perlu menggunakan kembali string koneksi yang ada, menyediakan file sertifikat untuk validasi TLS yang lebih ketat, atau menyambungkan melalui host bastion dengan terowongan SSH.

Tip

Untuk autentikasi standar, pemilihan mode SSL, grup server, dan koneksi tersimpan, lihat Koneksi dan identitas.

Gunakan mode input string koneksi

Pilih tab String Koneksi (di bawah Sambungkan melalui:) dalam dialog koneksi untuk menempelkan definisi koneksi yang ada. Ekstensi mengurai string secara otomatis dan mengisi bidang koneksi.

Halaman menggunakan tata letak dua kolom:

  • Kolom kiri: area teks berlabel String Koneksi tempat Anda menempelkan string. Petunjuk di bawah area teks berbunyi Harap hilangkan kata sandi dari string koneksi.
  • Kolom kanan: panel Detail Koneksi baca-saja yang memperlihatkan nilai Nama server, Nama pengguna, dan Nama database yang diurai saat diekstrak.

Penguraian terjadi secara langsung saat Anda mengetik atau menempel. Jika pengurai mendeteksi server atau nilai pengguna yang hilang, kesalahan validasi muncul di atas area teks.

Format yang didukung

Ekstensi ini mengenali sembilan format string koneksi:

Rancangan Prefiks atau pemicu Example
PostgreSQL URI postgres:// atau postgresql:// postgresql://user:password@host:5432/dbname?sslmode=require
JDBC jdbc:postgresql:// jdbc:postgresql://host:5432/dbname
Dipisahkan dengan titik koma (key=value) Berisi ; host=localhost;port=5432;dbname=mydb;user=postgres;password=secret
psql baris perintah psql psql -h host -p 5432 -U user -d dbname
Ekspor variabel lingkungan export export PGHOST=localhost diikuti oleh 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")

Pengurai mengekstrak host, pengguna, port, database, dan kata sandi dari semua format. Jika bidang kata sandi sudah diisi dalam dialog, pengurai mempertahankan nilai yang ada.

Note

Setelah diurai, Anda masih dapat membuka panel Advanced untuk mengonfigurasi pengaturan yang tidak dicakup oleh string koneksi, seperti tunnel SSH atau mode akses AI untuk tiap koneksi (mode akses Copilot di Visual Studio Code, mode akses AI di Cursor).

Konfigurasikan file sertifikat

Gunakan pengaturan file sertifikat di bagian akordion SSL dari laci Pengaturan Koneksi Tingkat Lanjut saat lingkungan Anda memerlukan TLS bersama atau validasi otoritas sertifikat eksplisit.

Modus sertifikat akar SSL

Daftar tarik-turun mode sertifikat akar SSL menentukan cara ekstensi menyediakan sertifikat CA akar. Pilih salah satu nilai berikut:

Modus Perilaku
Tidak Tidak ada sertifikat root yang digunakan. Ekstensi tidak memverifikasi rantai sertifikat server.
System Ekstensi ini menggunakan penyimpanan sertifikat tepercaya sistem operasi Anda. Mode ini memerlukan mode Verify-Full SSL; ekstensi memberlakukan ini secara otomatis.
File khusus Bidang teks berlabel nama file sertifikat akar SSL muncul. Masukkan jalur ke file sertifikat CA root berformat PEM.

Important

Saat Anda memilih Sistem, mode SSL diatur ke Verifikasi Penuh secara otomatis. Jika Anda mengubah mode SSL ke nilai lain saat Sistem aktif, kesalahan validasi muncul: "Verify-Full mode SSL diperlukan saat menggunakan penyimpanan sertifikat sistem."

Bidang sertifikat klien

Konfigurasikan TLS bersama dengan menyediakan jalur di bidang ini dalam bagian SSL :

Label bidang Property Deskripsi
Nama file sertifikat SSL sslcert Jalur ke file sertifikat klien.
Nama file kunci SSL sslkey Jalur ke file kunci privat klien.
Nama file sertifikat akar SSL sslrootcert Jalur ke sertifikat CA akar (hanya terlihat jika mode sertifikat akar SSL adalah File kustom).
Nama file SSL CRL sslcrl Jalur ke file daftar pencabutan sertifikat.
Menggunakan kompresi SSL sslcompression Mengaktifkan pemadatan pada koneksi SSL.

Tip

Untuk mode Verify-CA dan Verify-Full , selalu konfigurasikan sertifikat akar sehingga ekstensi dapat memvalidasi sertifikat server. Gunakan mode Sistem untuk mengandalkan penyimpanan CA tepercaya sistem operasi Anda tanpa menentukan jalur file.

Parameter SSL tingkat lanjut

Beberapa layanan PostgreSQL terkelola memberlakukan TLS tetapi menolak negosiasi default ekstensi. Konfigurasikan parameter ini di bagian SSL dari laci Pengaturan Koneksi Tingkat Lanjut untuk menyambungkan. Setiap parameter secara default adalah Default, sehingga parameter tetap tidak disetel dan perilaku sebelumnya dipertahankan.

Label bidang Property Nilai Gunakan saat
Mode sertifikat SSL sslcertmode Default, Nonaktifkan, Izinkan, Perlu Server memerlukan SSL tetapi menolak sertifikat klien. Atur ke Nonaktifkan untuk berhenti mengirim.
Pengikatan saluran channel_binding Bawaan, Nonaktifkan, Utamakan, Wajibkan Server mengharuskan SCRAM channel binding dinonaktifkan. Atur ke Nonaktifkan.
Negosiasi SSL sslnegotiation Default, Postgres, Direct Anda perlu mengontrol bagaimana jabat tangan TLS dinegosiasikan.
SSL SNI sslsni Default, Aktif, Nonaktif Titik akhir sensitif terhadap ekstensi Indikasi Nama Server TLS.
Versi protokol TLS minimum ssl_min_protocol_version Default, TLS v1 hingga TLS v1.3 Anda harus menetapkan versi minimum TLS.
Versi protokol TLS maksimum ssl_max_protocol_version Default, TLS v1 hingga TLS v1.3 Anda harus menetapkan versi TLS maksimum.

Warning

Pengaturan ini adalah pengaturan pengesampingan kompatibilitas - biarkan pada Default kecuali jika server tertentu memerlukan pengaturan berbeda. Menonaktifkan pengikatan saluran atau SSL SNI, atau mengizinkan versi TLS yang lebih lama (TLS v1 atau TLS v1.1), menurunkan keamanan koneksi dibandingkan dengan default.

Note

Backend koneksi yang disertakan dengan ekstensi menampilkan pengaturan ini. Jika Anda tidak melihat fitur tersebut di bagian SSL, perbarui ke versi ekstensi PostgreSQL yang backend bawaannya menyatakan fitur tersebut tersedia.

Menyambungkan ke AWS Aurora RDS for PostgreSQL

Untuk instans Aurora RDS (atau RDS) yang memerlukan enkripsi tetapi menolak negosiasi sertifikat klien:

  1. Atur mode SSL ke Perlu.
  2. Atur mode sertifikat SSL ke Nonaktifkan.

Konfigurasi ini mencerminkan pengaturan sslmode=require libpq dan sslcertmode=disable ( PGSSLMODE variabel lingkungan dan PGSSLCERTMODE ).

Sambungkan ke Azure Database for PostgreSQL Flexible Server

Jika autentikasi gagal hingga pengikatan saluran dinonaktifkan, atur Pengikatan saluran ke Nonaktifkan.

Konfigurasi ini mencerminkan channel_binding=disablePGCHANNELBINDING (variabel lingkungan).

Note

Biarkan parameter apa pun tetap pada Default agar diabaikan. Ekstensi hanya mengirimkan parameter yang Anda ubah, sehingga koneksi yang ada tidak terpengaruh.

Menyambungkan melalui terowongan SSH

Penerowongan SSH merutekan koneksi PostgreSQL melalui saluran SSH terenkripsi. Gunakan pendekatan ini saat database tidak dapat dijangkau secara langsung dari stasiun kerja Anda. Misalnya, ketika server berada di jaringan privat di belakang host bastion.

Mengaktifkan terowongan

  1. Buka dialog koneksi dan pilih Tingkat Lanjut untuk membuka laci Pengaturan Koneksi Tingkat Lanjut .
  2. Perluas bagian Akordion Terowongan SSH .
  3. Periksa tombol Aktifkan Penerowongan SSH . Bidang koneksi SSH muncul.

Bidang terowongan SSH

Label bidang Deskripsi
tuan rumah Nama host atau alamat IP dari server SSH (host bastion).
pelabuhan Nomor port server SSH (default: 22).
username Nama pengguna untuk mengautentikasi dengan server SSH.
Authentication Metode autentikasi SSH. Pilih Kata Sandi, File Identitas, atau Agen SSH.

Bidang yang tersisa berubah tergantung pada metode autentikasi yang dipilih:

Metode autentikasi Bidang tambahan ditampilkan
Password kata sandi/frase sandi: masukkan kata sandi SSH. Kotak centang Simpan Kata Sandi/Frase Sandi untuk mempertahankan kredensial.
File Identitas File identitas: masukkan jalur lengkap ke kunci privat SSH Anda (misalnya, ~/.ssh/id_ed25519). kata sandi/frase sandi: masukkan frase sandi kunci jika kunci privat dienkripsi. Kotak centang Simpan Kata Sandi/Frase Sandi .
Agen SSH Tidak ada bidang tambahan. Ekstensi ini mendelegasikan autentikasi ke agen SSH sistem Anda (ssh-agent di macOS dan Linux, layanan Agen Autentikasi OpenSSH pada Windows).

Cara kerja terowongan

Ketika terowongan SSH diaktifkan, ekstensi menetapkan koneksi SSH terlebih dahulu, membuat penerusan port lokal, lalu terhubung ke PostgreSQL melalui penerusan tersebut. Karena hal ini:

  • Nama Server di bidang koneksi utama harus menjadi alamat database seperti yang terlihat dari host SSH, yang sering localhost atau IP privat.
  • Port harus menjadi port PostgreSQL pada host target (biasanya 5432).
  • Pendirian terowongan SSH menambahkan latensi koneksi. Pertimbangkan untuk meningkatkan nilai Waktu tunggu koneksi dalam opsi lanjutan jika terjadi timeout.

Pilih opsi tingkat lanjut yang tepat

Skenario Fitur yang direkomendasikan
Anda memiliki URI PostgreSQL, cuplikan aplikasi, atau perintah psql yang sudah ada Pilih tab String Koneksi untuk mengisi bidang secara otomatis.
Organisasi Anda memerlukan file CA kustom atau TLS bersama Konfigurasikan bidang sertifikat SSL di bagian SSL dari laci tingkat lanjut.
Anda perlu menggunakan penyimpanan sertifikat OS Anda untuk verifikasi server Atur mode sertifikat akar SSL ke Mode sistem dan SSL ke Verify-Full.
Server terkelola (misalnya, AWS Aurora RDS) memerlukan SSL tetapi menolak sertifikat klien Atur mode SSL ke Memerlukan dan mode sertifikat SSL ke Nonaktifkan di bagian SSL .
Azure Database for PostgreSQL Flexible Server menolak autentikasi sampai pengikatan kanal dinonaktifkan Atur Pengikatan Saluran ke Nonaktifkan di bagian SSL .
Basis data tersebut hanya dapat diakses melalui jump box atau bastion host Aktifkan terowongan SSH di bagian Terowongan SSH dari laci tingkat lanjut.