web-dev-qa-db-fra.com

Message d'erreur Postgres: FATAL: l'authentification Ident a échoué pour l'utilisateur "..."

Supposons que vous voyez ce message:

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

Quelles sont les causes de ce message d'erreur?

29
Steve Bennett

Cela signifie que Postgres essaie d'authentifier un utilisateur à l'aide du protocole Ident, et ne peut pas. Ident auth fonctionne comme ceci:

  • Vous avez le rôle de base de données 'foo' sur la base de données 'db'
  • Votre pg_hba.conf fichier (dans /etc/postgres-something/main) définit 'Ident' comme le protocole de connexion à la base de données db pour les utilisateurs se connectant à partir de certains hôtes
  • Le nom d'utilisateur Unix établissant la connexion est 'foo'
  • Un serveur Ident fonctionnant sur la machine à partir de laquelle l'utilisateur se connecte confirme que son nom d'utilisateur est vraiment 'foo'

Causes et solutions possibles:

  1. Il n'y a aucun serveur Ident en cours d'exécution sur la machine à partir de laquelle vous essayez de vous connecter. Testez cela en essayant de vous y connecter sur le port 113. Si cela échoue, installez un serveur Ident (par exemple, Sudo apt-get install oidentd).
  2. Il y a un serveur Ident, mais il n'y a aucun rôle de base de données correspondant au nom avec lequel vous essayez de vous connecter ('foo' dans l'exemple ci-dessus). Créez-le donc en vous connectant d'une manière ou d'une autre à la base de données avec des droits de superutilisateur et faites CREATE ROLE foo. Vous pouvez également ajouter une entrée à /etc/postgresql/.../main/pg_ident.conf (ou /var/lib/pgsql/12/data ou partout).

  3. Peut-être que le nom d'utilisateur Shell ne correspond pas au rôle de base de données. Vous pouvez être en mesure de tester cela en vous connectant au serveur Ident pendant qu'une connexion est en cours et en passant les bons numéros de port.

  4. Peut-être que vous voulez réellement vous connecter avec un mot de passe , pas Ident. Modifiez le pg_hba.conf fichier de manière appropriée. Par exemple, changez:

    Host all all 127.0.0.1/32 ident
    

    à

    Host all all 127.0.0.1/32 md5
    
41
Steve Bennett

Je ne suis pas sûr des causes, mais cela m'a corrigé:

dans pg_hba.conf

changer à ceci:

Héberger tous tous 127.0.0.1/32 md5

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

8
jacktrades

Sur CentOS, ajoutez la ligne suivante à /var/lib/pgsql/9.3/data/pg_hba.conf:

Host all all 127.0.0.1/32 trust

Et commentez les autres entrées.

Bien sûr, ce paramètre est pas sécurisé, mais si vous ne faites que jouer sur un développement VM comme moi, alors c'est probablement bien ...

3

Pour Centos 7, remplacez pg_hba.conf par ci-dessous:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
#Host    all             all             127.0.0.1/32            ident
Host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
#Host    all             all             ::1/128                 ident
Host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     all                                     peer
#Host    replication     all             127.0.0.1/32            ident
#Host    replication     all             ::1/128                 ident
0
Kul Jeet

Si vous ne l'avez pas déjà essayé, consultez votre fichier pg_hba.conf. Il sera nommé quelque chose comme /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20); vous devrez peut-être utiliser "find/-name pg_hba.conf" pour le localiser.

En bas du fichier, changez les valeurs de 'METHOD' en 'trust' pour les tests locaux (voir la documentation de postgres pour des informations complètes). Redémarrez la machine pour vous assurer que tout démarre correctement et que les nouveaux paramètres sont lus.

Espérons que cela guérira vos malheurs. Il a résolu mes problèmes sur Fedora 20 avec PostgreSQL 9.3.

0
Alan Thompson