Pertama, penting untuk dipahami bahwa untuk sebagian besar distribusi Unix, pengguna Postgres default tidak memerlukan atau menggunakan kata sandi untuk otentikasi. Sebagai gantinya, tergantung bagaimana Postgres awalnya diinstal dan versi apa yang Anda gunakan, metode otentikasi default akan menjadi ident
atau peer
.
ident
otentikasi menggunakan server identifikasi sistem operasi yang berjalan pada port TCP 113 untuk memverifikasi kredensial pengguna.
peer
otentikasi di sisi lain, digunakan untuk koneksi lokal dan memverifikasi bahwa nama pengguna yang masuk dari sistem operasi cocok dengan nama pengguna untuk database Postgres.
Masuk dan Hubungkan sebagai Pengguna Default
Untuk sebagian besar sistem, pengguna default Postgres adalah postgres
dan kata sandi tidak diperlukan untuk otentikasi. Jadi, untuk menambahkan kata sandi, kita harus login terlebih dahulu dan terhubung sebagai postgres
pengguna.
$ sudo -u postgres psql
Jika Anda berhasil terhubung dan melihat psql
prompt, lompat ke bawah ke Mengubah Kata Sandi bagian.
Jika Anda menerima pesan kesalahan yang menyatakan bahwa database “postgres” tidak ada, coba sambungkan ke template1
database sebagai gantinya dan jika berhasil, lanjutkan ke Mengubah Kata Sandi .
$ sudo -u postgres psql template1
Kesalahan Otentikasi
Jika Anda menerima kesalahan autentikasi saat mencoba menyambung ke psql
klien, Anda mungkin perlu mengubah file konfigurasi otentikasi Postgres (pg_hfa.conf).
Buka file konfigurasi, biasanya terletak di /etc/postgresql/#.#/main/pg_hba.conf
, di mana #.#
adalah versi Postgres yang Anda gunakan:
$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf
File konfigurasi auth adalah daftar aturan otentikasi. Gulir ke bawah file sampai Anda menemukan baris pertama yang menampilkan postgres
pengguna di kolom ketiga (jika ada baris seperti itu). Batalkan komentar pada baris jika perlu (hapus titik koma), atau jika baris tersebut hilang seluruhnya, tambahkan baris berikut ke bagian atas file dan simpan perubahan Anda:
local all postgres peer
Aturan otentikasi ini hanya memberi tahu Postgres bahwa untuk koneksi lokal yang dibuat ke semua database untuk pengguna postgres
, autentikasi menggunakan peer
protokol.
Catatan:Beberapa versi Postgres yang lebih lama lebih memilih metode otentikasi default dari ident, tetapi sebagian besar instalasi modern akan menggunakan rekan seperti yang ditentukan di atas. Anda mungkin perlu menguji keduanya jika hasilnya berbeda.
Sekarang dengan file konfigurasi Anda diperbarui, ulangi langkah-langkah di Masuk dan Hubungkan sebagai Pengguna Default bagian untuk mencoba terhubung sebagai postgres
default pengguna. Setelah berhasil, lanjutkan dengan mengubah kata sandi.
Mengganti Kata Sandi
Dengan koneksi sekarang dibuat ke Postgres di psql
prompt, keluarkan ALTER USER
perintah untuk mengubah kata sandi untuk postgres
pengguna:
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE
Jika berhasil, Postgres akan menampilkan konfirmasi ALTER ROLE
seperti yang terlihat di atas.
Terakhir, keluar dari psql
klien dengan menggunakan \q
perintah.
postgres=# \q
Anda sudah selesai. Default postgres
pengguna sekarang memiliki kata sandi yang terkait dengan akun untuk digunakan di aplikasi Anda yang lain.