Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
- Atur mode SSL ke Perlu.
- 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
- Buka dialog koneksi dan pilih Tingkat Lanjut untuk membuka laci Pengaturan Koneksi Tingkat Lanjut .
- Perluas bagian Akordion Terowongan SSH .
- 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
localhostatau 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. |