Tuesday, September 11, 2007

Cambiar Contraseña de Usuario 'postgres' en Ubuntu

En un post anterior ya he comentado que el instalador de PostgreSQL para Ubuntu asigna una contraseña aleatoria al usuario 'postgres' y que esta debe ser cambiada manualmente post-instalación. Esto no es un error en el instalador, es una comportamiento de seguridad por defecto del instalador. Cambiano la contraseña Para cambiar la contraseña en una instalación por defecto o porque simplemente se olvido la contraseña y no existen mas usuarios se hace lo siguiente en una terminal: 1) Impersonar al usuario 'postgres'. $sudo su postgres 2) Ejecutar la utilidad psql $psql En este momento se esta conectando a la base de datos usando el usuario 'postgres', con este usuario puede cambiar contraseñas de muchos usuarios incluso del mismo 'postgres'. Ahora vamos a cambiar la contraseña, ejecute sobre la linea de comandos actual la siguiente secuencia donde 'passwd' es la contraseña nueva(debe utilizarse comillas simples): alter user postgres with password 'passwd'; Si el programa response con el mensaje 'ALTER ROLE' la contraseña se ha cambiado correctamente. Para salir se la utilidad escriba: \q para salir del usuario 'postgres' escriba lo siguiente: exit Listo. La contraseña se ha cambiado correctamente. Probando la conexion Para probar la conexion se puede utilizar la misma utilidad 'psql' de la siguiente forma: psql -U postgres -W Presione ENTER e introduzca la nueva contraseña(usted debio haberla cambiado en el ejemplo anterior, si no lo hizo la contraseña es 'passwd').

34 comments:

Anonymous said...

Muchisimas gracias me funciono perfecto lo unico es que para acceder a postgres despues de cambiar la clave use

psql -h 127.0.0.1 -p 5432 -U postgres template1;

Anonymous said...

Gracias MAESTRO! ;)

Gollum said...

me falla el último paso, todo lo demás me da bien pero cuando compruebo la conexion me da error al meter la contraseña, como si me hubiera equivocado.
Gracias!

Gollum said...

Lo he hecho todo bien pero me falla al introducir la contraseña, me sale lo de alter role pero cuando introduzco la contraseña me da el siguiente mensaje:
psql: FATAL: la autentificación Ident falló para el usuario «postgres»
¿qué hago?
Muchas Gracias.

Johan Hernandez said...

gollum, creo que efectivamente te equivocaste en la contraseña. Intenta nuevamente.

Gollum said...

Lo he intentado tres veces y como contraseña solo he puesto a así que tp me he podido equivocar.

Gollum said...

Lo he probado tres veces y no funcionaba, he decidido volver a cambiar la contraseña y he puesto 'a' y me sigue pasando lo mismo, no creo que sea de eso.

Ing. Alejandro Fernandez said...

Johan
Excelente aporte, recien instale el Ubuntu 7.1 (magnifico por cierto), pero tengo un GRAN problema. Debo correr en este un sistema en Python 2, ahora, este sistema tiene varias dependencias (dateutil, reportlab, y otras). El problema principal esta en la conexion con postgresql, pues los otros equipos de mi red usan Centos 4.4 (RHE4). La dependencia en cuestion es postgresql-pythonXX. El problema es que no encuentro una equivalente en Ubuntu
Gracias de antemano por sus comentarios y un saludo desde CR.

Alejandro

Anonymous said...

Johan he intentado cambiar la contraseña del gestor postres 8.2.5 según el post suyo en Ubuntu 7.10 pero al final no lo hace. He hecho todos los pasos de la instalación según como ha escrito pero nada. ¿Qué más puedo hacer?

Johan Hernandez said...

Que version de PostgreSQL estan usando y sobre que OS?

K'rito said...

Hola yo hice todos los pasos y un par de de veces me fallo pero al cabo de un rato me di cuenta que no estaba poniendo el ";" al final de la instruccion del "alter", talves si revisas sea el mismo error, ya que esto no da ningun error. Ahora si todo sale bien deberia decirte algo asi como

ALTER ROLE

Ismael Diaz said...

--
psql: FATAL: la autentificación Ident falló para el usuario «postgres»
--

Comunmente si no hay error en la definicion de la contraseña nueva, esto se soluciona agregando el flag -h que indica el nombre o direccion de la maquina servidor, por ejemplo:

psql -h localhost -U postgres -W

Con eso deberian poder conectarse sin problemas, saludos.

Anonymous said...

Hola esta muy bueno to post, pero no puedo realizar el paso de la comprobación de la conexión, cuando ejecuto esa línea de código nunca me pide la contraseña y si trato de ingresar desde phpPgadmin me dice que el ingreso no esta autorizado que será?

Gracias de Antemano

Johan Hernandez said...

Dos post mas arriba esta la solucion para MySQL hehe

armando said...

Hola Ismael:
Muchas gracias por tu ayuda. Utilizé la linea de comando con la opción -h y me funcionó muy bien.

Armando

armando said...

Hola Ismael:

Muchas gracias, utilize la linea que dijiste y me funcionó bien la opción -h
mil gracias

Armando

iñaki said...

Muchas gracias.

Gustavo Alonso Ramirez B. said...

sinceramente a mi tambien me aparece este error FATAL: Ident authentication failed for user "postgres" segui tal y cual las intrucciones de esta pagina y no se por que no funciona esta cosa de antemano estoy utilizando Linux mint y creo que debe ser lo mismo ya que este SO es la version revestida de ubuntu bueno es almenos es lo que lei porfas hechenme la mano necesito hacer funcionar postgresql

Xao said...

Gracias al post y al comentario de Ismael, me estaba volviendo chiribita.

Saludos..

Ariel said...

Hola,
relean lo que dice K'rito los que le da el error "FATAL:......"
Verifiquen que al escribir el comando "alter user..." no hayan omitido el ";" final.
En tal caso no les dará el mensaje "ALTER ROLE" y no les cambiará el password.

Por ese olvido estuve largo rato quemándome las pestañas!!!!

Un abrazo.

Anonymous said...

Te pasaste, es justo lo que buscaba. Muchas gracias por darte el tiempo para escribir este artículo.

Atte.

Cristian Sánchez.

Luis Alberto Ochoa said...

Muy bien, no puedo creer que no se me haya ocurrido

pow3r said...

No olvideis colocar ";" (punto y coma) al final y os funcionará bien.

psql -U postgres -W;

o este otro

psql -h 127.0.0.1 -p 5432 -U postgres;

Darvin said...

Si necesita que cualquier usuario se conecte por medio de cualquier dirección IP, agregue al final la siguiente línea:

host all all 0.0.0.0 0.0.0.0 md5

Anonymous said...

Gracias amigo, me estaba desesperando por el password!

erp said...

hola, gracias por el post, interesante y claro, yo tengo instalado un servidor de Ubuntu e instalado postgres 8.3 y necesito conectarme con pgadmin pero me da error de coneccion.

Les agradesco si me puede ayudar.

Saludos

Anonymous said...

Hola, gracias por la información clara y facil de entender, he realizado todos los pasos y quiero conectarme con el administrador de base de datos de pgadmin3, tengo dos servidores con postgres el segundo instalado que es con postgres funciona bien lo que es el server (texto) y me contecto con openerp realiza todas las funciones de basse de datos pero con pgadmin no me deja conecta, si me pueden ayudar para saber que parametros debo de cambiar.

De antemano les agradesco

saludos

JSAN said...

Por default pgadmin3 intenta conectarse de manera remota aunque tu intentes conectarte a un servidor local, y por otra parte postgres no admite conexiones remotas así que trendras que modificar el archivo de con figuración de postgres /etc/postgresql/8.2/main/postgresql.conf y remplazar la linea
#listen_addresses = 'localhost'
por
listen_addresses = '*'
y listo ahora puedes conectarte con pgadmin3 local o remotamente :)

socket said...

Muchas gracias Johan. Para nosotros, que estamos adentrándonos en este mundillo por primera vez, es de una gran utilidad tener el soporte de gente como tú. De nuevo, muchas gracias.

The Snake said...

muchas gracias, me estaba volviendo loco con lo del -h y con lo de editar /etc/postgresql/8.2/main/postgresql.conf descomenté la línea
#listen_addresses = 'localhost'
y ahora funciona perfecto

Jose Rafael said...

Muchas gracias por haber publicado este tip. Me funcionó perfectamente.

Alexander said...

Muchas gracias.

Anonymous said...

super bueno el post... al ppio tuve error con la conexión pero cuando lo hice agregándole localhost a la instrucción me funcionó muy bien....
psql -h localhost -U postgres -W

gracias de nuevo!!!!!!!!

Anonymous said...

muchas gracias .Me ahorraste mucho tiempo.
A veces tiene sus desventajas usar el gestor de ap.