La manera más fácil de recuperar la contraseña de tu usuario postgres

De una vez te digo que a pesar de que esta solución es una de las más fáciles que me he encontrado NO TE LA RECOMIENDO para entornos de producción ya que implica abrir una compuerta a un acceso no permitido a nuestra base de datos y por tanto es un riesgo de seguridad hacerlo en dicho ambiente.

Lo cierto es que muchas veces olvidamos la contraseña de nuestro usuario administrador por defecto Postgres y si estamos en un entorno local o de desarrollo lo podemos hacer sin ningún problema. Aquí asumo que estas usando alguna distribución de Linux pero si usas windows la idea es la misma sólo que cambia la ubicación de los archivos que vamos a trabajar, también asumo que tienes instalada alguna versión actualizada de postgresql 9.x, a partir de aquí en los comandos donde vean la “x” van a colocar el número de la versión que corresponde; ya con todo esto aclarado vamos a entrar en materia.

La idea es permitir el acceso sin necesidad de contraseña al servicio de postgres únicamente para conexiones locales, para eso necesitamos editar el archivo de configuración de conexiones hacia el servicio de base de datos pg_hba.conf.

Ubicación del archivo pg_hba.conf

  • En centos lo ubicas en /var/lib/pgsql/9.x/data/
  • En debian y ubuntu por lo general está en /etc/postgresql/9.x/main
  • Te recomiendo antes de editarlo hacer un respaldo del mismo de la siguiente manera: “cp pg_hba.conf pg_hba.conf.backup”
screenshot_5

Vas a editar el archivo pg_hba.conf tal como te indico en la imagen anterior con el comando “nano pg_hba.conf”, luego reinicias el servicio postgres “/etc/init.d/postgresql-9.x restart” y luego vas a hacer esto:

su postgres

psql -h localhost -c “alter user postgres with password ‘contraseñaquequieras’ postgres;”

exit

Ya en este momento has logrado recuperar la contraseña de tu usuario postgres, lo que queda es dejar todo tal como estaba:

/etc/init.d/postgresql-9.x stop

rm -f pg_hba.conf

mv pg_hba.conf.backup pg_hba.conf

/etc/init.d/postgresql-9.x start

Como te dije al principio recomiendo hacer esto sólo en ambientes que NO sean de producción, de hecho el usuario postgres por seguridad debe ser deshabilitado en estos ambientes.

Tus comentarios y aportes son muy importantes no olvides hacerlo en la parte de abajo de este post.

Paz y bien!


Originally published at Ing. Jorge Gonzalez.

Show your support

Clapping shows how much you appreciated Jorge Gonzalez’s story.