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:
Asumiendo que sí 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-
fuente: http://sparcki.blogspot.com/2010/01/como-recuperar-contrasena-postgres.html
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>
Asumiendo que sí 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 onlyY la sustituiremos por
local all all md5
# "local" is for Unix domain socket connections onlyGuardaremos 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>
local all all trust
$ pg_ctl reloadAhora, 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';>
se ha enviado una señal al servidor
$ psqlPor ú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.
psql (8.4.2)
Digite «help» para obtener ayuda.
postgres=# ALTER USER postgres WITH PASSWORD 'nueva_pass';
ALTER ROLE
postgres=# \q
$ 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