miércoles, 13 de mayo de 2015

Como recuperar contraseña postgres

Introducción
Puede que se nos <olvide> la contraseña de Super Usuario de PostgreSQL <postgres> y no seamos capaces de realizar ninguna operación sobre ella. Esto que parece un serio problema no será tanto si cumplimos los siguientes requisitos:
  • Tener acceso a la máquina que tiene instalado el servidor <por ssh, físico, etc ..>
  • Tener acceso con el usuario que ejecuta el servidor PostgreSQL <normalmente postgres>
Si tenemos estos requistos, será coser y cantar, sino, será un poco más complicado.

Asumiendo que los tenemos, y ya estamos conectados a la máquina que tiene el servidor con el usuario que la ejecuta, primero debemos editar el archivo de configuración <$PGDATA/pg_hba.conf> y permitir el acceso local sin contraseña, es decir, trust. Para ello, buscaremos la entrada -si la tenemos-
#"local" is for Unix domain socket connections only
local   all         all                               md5
Y la sustituiremos por
# "local" is for Unix domain socket connections only
local   all         all                               trust
Guardaremos y saldremos del editor. A continuación, deberemos llamar a postgres para que vuelva a leer los archivos de configuración, para ello utilizaremos el comando <pg_ctl> con la opción <reload>
$ pg_ctl reload
se ha enviado una señal al servidor
Ahora, nos conectaremos a postgres utilizando el comando <psql> y podremos cambiar la contraseña, utilizando la instrucción SQL <ALTER USER nombre WITH PASSWORD 'password';>
$ psql
psql (8.4.2)
Digite «help» para obtener ayuda.

postgres=# ALTER USER postgres WITH PASSWORD 'nueva_pass';
ALTER ROLE
postgres=# \q
Por último, sólo nos queda revertir el cambio en el archivo <$PGDATA/pg_hba.conf> y llamar a <pg_ctl> para que vuelva a leer la configuración.
$ vi /var/postgres/8.4/data/pg_hba.conf
    # "local" is for Unix domain socket connections only
    local   all         all                               md5

:wq
$ pg_ctl reload
se ha enviado una señal al servidor
$ psql
Contraseña:
psql (8.4.2)
Digite «help» para obtener ayuda.

postgres=# \q


fuente: http://sparcki.blogspot.com/2010/01/como-recuperar-contrasena-postgres.html

No hay comentarios:

Publicar un comentario