Mengkonfigurasi file pg_hba.conf untuk memungkinkan akses dari server lain ke database


15

Saya memiliki database postgres pada satu server dan saya perlu mengaksesnya dari server lain.

Saya perlu mengedit file pg_hba.conf, tetapi sekarang sudah tahu apa langkah-langkah untuk mengedit file ini. Server Centos

Saya perlu menambahkan baris berikut dalam file

host    all         all         10.0.2.12         255.255.255.255   trust

Saya menemukannya var/lib/pgsql/data/

Sekarang pada dasarnya saya tidak yakin apa langkah yang benar untuk melakukan ini

Jawaban:


14

Pertama, ambil salinan cadangan dari pg_hba.conf yang diberikan

sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf

Dengan begitu, Anda memiliki versi yang lebih lama jika Anda gagal. Fitur arsip tar yang bagus adalah yang menjaga izin dan direktori. Jadi ketika pg_hba.conf rusak melebihi pengakuan. Kamu bisa:

cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar

Ini akan mengembalikan pg_hba.conf cadangan dari arsip yang Anda buat sebelumnya.

Adapun penyisipan baris yang sebenarnya:

sudo su -c 'echo "host    all         all         10.0.2.12         255.255.255.255   trust" >> /var/lib/pgsql/data/pg_hba.conf'

(CATATAN: Perintah diedit. Terima kasih bortzmeyer!)

Harus melakukannya. Perhatikan bahwa ini hanya menambahkan baris ke pg_hba.conf. Jika Anda perlu mengubahnya, Anda harus menggunakan editor yang sebenarnya. Seperti vi. Kurva pembelajarannya bisa sedikit curam, tetapi setelah Anda mempelajari setidaknya dasar-dasarnya Anda harus cukup aman di sebagian besar setiap lingkungan unix yang Anda temui.

Sekarang saya kembali ke jalur selanjutnya Anda harus mencoba me-restart database postgresql Anda. Pada mesin Centos ini saya percaya dilakukan oleh:

sudo service postgresql restart

atau Anda bisa memuat ulang konfigurasi tanpa memulai ulang:

su - postgres
pg_ctl reload

Sekarang Anda harus dapat mengakses database postrgresql Centos-Machines Anda dari 10.0.2.12


1
Sudo dalam perintah terakhir tidak akan berfungsi karena operasi privilisasi dilakukan oleh pengalihan, yang ditangani oleh shell, bukan oleh program yang Anda jalankan dengan sudo (gema, dalam kasus ini).
— bortzmeyer

Poin bagus! Ini harus ditulis sebagai sudo "echo 'host semua 10.0.2.12 255.255.255.255 trust' >>
— /var/lib/pgsql/data/pg_hba.conf

Cara yang ideal adalah meletakkannya di bawah kontrol versi di lokasi admin dan menyebarkannya setelah mengubahnya melalui SSH dll
— vfclists

1
Lokasi default file pg_hba.conf sedikit berbeda di 9.4: /var/lib/pgsql/9.4/data/pg_hba.conf.
— Sergey Vlasov

13

Jangan lupa untuk mengedit postgresql.conf dan ubah / tambahkan baris

listen_addresses = '*'

Postgresql secara default mendengarkan di localhost


Bukankah contoh list_addresses Anda terlalu permisif? Itu adalah celah keamanan yang menganga jika server berjalan pada beberapa IP, yaitu publik, internal, VPN dll.
— vfclists
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.