recuperar - ¿Cómo configurar postgresql para que acepte el inicio de sesión y la contraseña?
recuperar contraseña postgresql (3)
Creo que su archivo pg_ident.conf
está mal configurado. Además, ¿has probado
psql -U postgres -W
Tengo una nueva instalación de ubuntu 10.10 con todas las actualizaciones y postgresql 8.4
Para que postgresql acepte conexiones de inicio de sesión y contraseña, lo he configurado a través de:
sudo su postgres
psql
ALTER USER postgres WITH PASSWORD ''password'';
CREATE DATABASE myapp;
/q
exit
sudo vi /etc/postgresql/8.4/main/pg_hba.conf
change "local all all indent" to "local all all trust"
Pero, sorprendentemente, esto no está funcionando! El comando
psql -U postgres password
Evalúa con error:
psql: FATAL: Ident authentication failed for user "postgres"
¿Alguna pista de cómo puedo hacer que el psql -U
funcione?
Otra cosa que puede causar esto son las credenciales caducadas. No creo que esto haya ocurrido en la versión 8, pero en la versión 9 cuando creas un nuevo rol en pgadmin, se crea en un estado vencido y debes cambiar o borrar la fecha de vencimiento del rol antes de poder iniciar sesión con eso.
Probablemente sea una buena idea dejar al usuario "postgres" con autenticación de identificación. Por defecto, creo que Ubuntu usa el usuario "postgres" para realizar actualizaciones, copias de seguridad, etc., y eso requiere que pueda iniciar sesión sin una contraseña específica.
Recomiendo crear otro usuario (probablemente con su propio nombre de usuario) y también darle privilegios de administrador. Luego puede usar ese usuario con contraseñas en conexiones locales.
Aquí es cómo se ven las partes relevantes de mi pg_hba.conf:
# allow postgres user to use "ident" authentication on Unix sockets
# (as per recent comments, omit "sameuser" if on postgres 8.4 or later)
local all postgres ident sameuser
# allow all other users to use "md5" authentication on Unix sockets
local all all md5
# for users connected via local IPv4 or IPv6 connections, always require md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
También tenga en cuenta que la psql -U postgres password
no hará lo que desea. La contraseña nunca debe especificarse en la línea de comandos. Eso intentará iniciar sesión como usuario "postgres" en una base de datos llamada "contraseña".
Debes usar psql -U postgres myapp
lugar. Postgres le pedirá automáticamente una contraseña, si está configurada correctamente para requerir una.
En caso de que desee que la contraseña se complete automáticamente, colóquela en el archivo $ HOME / .pgpass