snippetjournal

– notes, snippet codes, and my journal

Reset Password Postgres

leave a comment »

pgadmin bug jika reset password pada pgadmin. user tidak akan bisa mengakses dengan password baru.

penyebab :
date picker pada pgadmin di bagian menu user roles akan selalu mengembalikan nilai default, yaitu 1/1/1970.
sehingga ketika user yang telah di ganti password statusnya akan invalid. walaupun password telah berubah user tidak akan bisa login.
dan error message yang di tampilkan berupa “wrong password”

recovery :
langkah 1: mengembalikan hak akses kepada user localhost
buka file “pg_hba.conf”

akan terdapat konfigurasi seperti ini (original configuration) :

host all all 127.0.0.1/32 md5
host all all ::1/128 md5

rubah kolom METHOD menjadi trust, arti nya user akses akan selalu di berikan.
konfigurasi akan menjadi seperti ini (change configuration) :

host all all 127.0.0.1/32 trust
host all all ::1/128 trust

reload atau restart postgres :

E:\Program Files\PostgreSQL\9.2\bin>pg_ctl.exe reload -D "E:\Program Files\Postg
reSQL\9.2\data"

langkah 2 :
login pada pgadmin dengan password lama atau baru (akan selalu di beri akses ).
akses psql.exe (ex : E:\Program Files\PostgreSQL\9.2\bin>psql.exe -D postgres)

akan di minta password, masukan password baru atau lama.
pada console psql, jalan kan script dibawah ini :

postgres=# SELECT usename,valuntil FROM pg_user;
  usename   |        valuntil
------------+------------------------
 postgres   | invalid
 cms_tester | 1970-01-01 00:00:00+07
 KMS        | 1970-01-01 00:00:00+07
(3 rows)

atau

postgres=# SELECT p.* FROM pg_user p;
  usename   | usesysid | usecreatedb | usesuper | usecatupd | userepl |  passwd
 |        valuntil        | useconfig
------------+----------+-------------+----------+-----------+---------+---------
-+------------------------+-----------
 postgres   |       10 | t           | t        | t         | t       | ********
 | invalid                |
 cms_tester |    51204 | f           | f        | f         | f       | ********
 | 1970-01-01 00:00:00+07 |
 KMS        |    97272 | f           | f        | f         | f       | ********
 | 1970-01-01 00:00:00+07 |
(3 rows)

ubah status validasi user (postgres) menjadi infinity

postgres=# ALTER USER postgres VALID UNTIL 'infinity';
ALTER ROLE

jalan kan script select jika ingin melihat perubahan nya.

langkah 3 :
kembalikan konfigurasi ke semula

host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

reload atau restart postgres :

E:\Program Files\PostgreSQL\9.2\bin>pg_ctl.exe reload -D "E:\Program Files\Postg
reSQL\9.2\data"

kemudian Coba login dengan user yang benar (user baru) pada pgadmin

refences
http://astonj.com/tech/how-to-recover-or-reset-a-lost-postgresql-password/
http://stackoverflow.com/questions/14564644/postgres-password-authentication-fails
http://dba.stackexchange.com/questions/36137/postgresql-user-can-not-connect-to-server-after-changing-password

Written by snippetjournal

October 1, 2013 at 8:37 am

Posted in Personal

Tagged with , ,

Leave a comment