PostgreSQL: Mengatur ulang kata sandi PostgreSQL di Ubuntu [ditutup]

96

Di Ubuntu, saya menginstal database PostgreSQL dan membuat superuser untuk server.

Jika saya lupa kata sandi superuser postgresql, bagaimana saya bisa meresetnya (kata sandi) untuk pengguna itu?

Saya mencoba mencopotnya dan kemudian menginstalnya lagi tetapi superuser yang dibuat sebelumnya tetap dipertahankan.

Ritesh Mehandiratta
sumber

Jawaban:

215

Dengan asumsi Anda adalah administrator mesin, Ubuntu telah memberi Anda hak sudo untuk menjalankan perintah apa pun sebagai pengguna mana pun.
Juga dengan asumsi Anda tidak membatasi hak dalam pg_hba.conffile (di /etc/postgresql/9.1/maindirektori), itu harus berisi baris ini sebagai aturan pertama:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(Tentang lokasi file: 9.1adalah versi postgres utama dan mainnama "cluster" Anda. Ini akan berbeda jika menggunakan versi postgres yang lebih baru atau nama non-default. Gunakan pg_lsclustersperintah untuk mendapatkan informasi ini untuk versi / sistem Anda).

Bagaimanapun, jika pg_hba.conffile tidak memiliki baris itu, edit file, tambahkan, dan muat ulang layanan dengan sudo service postgresql reload.

Maka Anda harus dapat masuk dengan psqlsebagai pengguna super postgres dengan perintah shell ini:

sudo -u postgres psql

Setelah berada di dalam psql, jalankan perintah SQL:

ALTER USER postgres PASSWORD 'newpassword';

Dalam perintah ini, postgresadalah nama pengguna super. Jika pengguna yang lupa sandinya ritesh, perintahnya adalah:

ALTER USER ritesh PASSWORD 'newpassword';

Referensi: Dokumentasi PostgreSQL 9.1.13, Bab 19. Otentikasi Klien

Ingatlah bahwa Anda perlu mengetikkan postgres dengan satu S di akhir

Daniel Vérité
sumber
2
saya menggunakan metode Anda nama pengguna super saya adalah ritesh pg_hba.conf saya adalah seperti yang Anda sebutkan. saya menjalankan perintah "ALTER USER postgres PASSWORD 'newpassword';" konsol menunjukkan 'ALTER ROLE'. kemudian saya keluar menggunakan ctrl + c setelah itu saya menjalankan perintah createuser. itu menunjukkan untuk memasukkan kata sandi saya memasukkan kata sandi baru tetapi memberi saya kesalahan "createuser: tidak dapat terhubung ke database postgres: FATAL : otentikasi kata sandi gagal untuk pengguna "ritesh" ". bagaimana cara membuat pengguna dan apa yang harus menjadi kata sandi untuk perintah ini ??
Ritesh Mehandiratta
Jika Anda ingin mengubah kata sandi ritesh, ubah SQL di atas menjadiALTER USER ritesh PASSWORD 'newpassword'
Daniel Vérité
Anda harus memulai ulang postgres setelah mengubah pg_hba.conf ....
Mahdi
1
Tidak perlu restart, cukup gunakan pg_ctl reload.
hbn
Terima kasih untuk ini.
Janji Preston