Saya perlu mengakses database postgresql dari mesin jarak jauh pada VPS di DigitalOcean yang menjalankan 12.10 dan postgresql 9.1.
Bagaimana saya melakukan ini? Saya perhatikan port 5432 ditutup, bagaimana saya membuka ini?
Saya perlu mengakses database postgresql dari mesin jarak jauh pada VPS di DigitalOcean yang menjalankan 12.10 dan postgresql 9.1.
Bagaimana saya melakukan ini? Saya perhatikan port 5432 ditutup, bagaimana saya membuka ini?
Jawaban:
Untuk membuka port 5432, edit /etc/postgresql/9.1/main/postgresql.conf
dan ubah
listen_addresses='localhost'
untuk
listen_addresses='*'
dan mulai kembali DBMS Anda
invoke-rc.d postgresql restart
sekarang Anda dapat terhubung dengan
$ psql -h hostname -U username -d database
jika Anda tidak dapat mengotentikasi diri sendiri, maka Anda perlu memberikan hak akses pengguna ke database Anda
Edit
/etc/postgresql/9.1/main/pg_hba.conf
dan tambahkan
host all all all md5
(Ini untuk akses terbuka lebar. Untuk kontrol yang lebih ketat, lihat dokumentasi pg_hba.conf dan sesuaikan sesuai kebutuhan Anda).
Selanjutnya Anda juga perlu memuat ulang
invoke-rc.d postgresql reload
Saya tidak perlu menyebutkan bahwa ini adalah konfigurasi dasar, sekarang Anda harus berpikir tentang memodifikasi firewall Anda dan meningkatkan keamanan DBMS Anda.
host <database> <user> <remote_client_IPaddress>/24 md5
Ini tidak berfungsi lagi, jika pernah:
tuan rumah semua * md5
Baris yang mungkin benar untuk ini adalah:
host semua semua rentang 0,0.0.0/0 md5 # ipv4
host semua semua :: 0/01 md5 # kisaran ipv6
tuan rumah semua semua md5 #semua ip
host all all all md5
akan bekerja dengan baik Itu benar? ada masalah keamanan?
Jawaban dengan pilihan tertinggi dan yang diterima memiliki implikasi keamanan yang serius. Metode ini dinonaktifkan secara default karena alasan yang baik.
Lebih baik gunakan penerusan port lokal dengan ssh
:
ssh -L local_port:localhost:foreign_port user@server
Mulai penerusan port:
ssh -L 5432:localhost:5432 user@your-server.com
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com
(Ubah port lokal dan asing agar sesuai dengan konfigurasi Anda).
Kemudian Anda dapat langsung terhubung ke database dari komputer lokal Anda:
psql -U db_user -p local_port -l