39 votos

Mensaje de error Postgres: La autentificación de la identificación falló para el usuario "..."

Di que estás viendo este mensaje:

FATAL:  Ident authentication failed for user "..."

¿Cuáles son las causas de este mensaje de error?

53voto

Steve Bennett Puntos 1408

Significa que Postgres está tratando de autentificar a un usuario usando el protocolo de identificación, y no puede. La autentificación de la identificación funciona así:

  • Tienes el papel de base de datos 'foo' en la base de datos 'db'.
  • Su pg_hba.conf archivo (en /etc/postgres-something/main ) define "Ident" como el protocolo para conectarse a la base de datos db para los usuarios que se conectan desde ciertos hosts
  • El nombre de usuario unix que hace la conexión es "foo
  • Un servidor de identificación ejecutándose en la máquina desde la que el usuario se conecta confirma que su nombre de usuario es realmente 'foo'.

Posibles causas y soluciones:

  1. Hay no hay servidor de identificación corriendo en la máquina de la que estás tratando de conectarte. Pruebe esto tratando de conectarse a ella en el puerto 113. Si eso falla, instale un servidor de identificación (por ejemplo, sudo apt-get install oidentd ).
  2. Hay un servidor de identificación, pero hay no hay papel de la base de datos que coincida con el nombre con el que estás tratando de conectarte ('foo' en el ejemplo anterior). Así que créalo conectando de alguna manera a la base de datos con derechos de superusuario y haz CREATE ROLE foo . Alternativamente, añadir una entrada a /etc/postgresql/.../main/pg_ident.conf .
  3. Tal vez el nombre de usuario Shell no concuerda el papel de la base de datos. Usted puede ser capaz de probar esto conectándose al servidor de identificación mientras la conexión está en marcha, y pasando los números de puerto correctos.
  4. Tal vez realmente quieres conectar con una contraseña no la identificación. Edita el pg_hba.conf archivar apropiadamente. Por ejemplo, el cambio:

    host all all 127.0.0.1/32 ident

    a

    host all all 127.0.0.1/32 md5

9voto

jacktrades Puntos 275

No estoy seguro de las causas, pero esto lo arregló para mí:

en pg_hba.conf

cambiar a esto:

alojar a todos los 127.0.0.1/32 md5

Error exacto: Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"

4voto

En CentOS, agregue la siguiente línea a /var/lib/pgsql/9.3/data/pg_hba.conf :

host all all 127.0.0.1/32 trust

Y comentar las otras entradas.

Por supuesto, este escenario es no seguro, pero si sólo estás jugando con un VM de desarrollo como yo, entonces probablemente esté bien...

0voto

Alan Thompson Puntos 101

Si no lo has intentado ya, revisa tu archivo pg_hba.conf. Se llamará algo como /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20); puede que tengas que usar 'find / -name pg_hba.conf' para localizarlo.

En la parte inferior del archivo, cambie los valores de "MÉTODO" por "confianza" para las pruebas locales (ver los documentos postgres para más información). Reinicie la máquina para asegurarse de que todo se inicie de forma limpia y se lean los nuevos parámetros.

Con suerte esto curará sus males. Resolvió mis problemas en Fedora 20 con PostgreSQL 9.3.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: