GNU/Linux >> Tutoriels Linux >  >> Linux

Message d'erreur Postgres :FATAL :Échec de l'authentification de l'identifiant pour l'utilisateur...

Solution 1 :

Cela signifie que Postgres essaie d'authentifier un utilisateur en utilisant le protocole Ident et ne peut pas. L'authentification de l'identité 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 (en /etc/postgres-something/main ) définit 'Ident' comme protocole pour se connecter à la base de données db pour les utilisateurs se connectant depuis certains hôtes
  • Le nom d'utilisateur Unix établissant la connexion est 'foo'
  • Un serveur d'identification exécuté sur la machine à partir de laquelle l'utilisateur se connecte confirme que son nom d'utilisateur est bien "foo"

Causes possibles et solutions :

  1. Il n'y a pas de serveur d'identification en cours d'exécution sur la machine à partir de laquelle vous essayez de vous connecter. Testez ceci en essayant de vous y connecter sur le port 113. Si cela échoue, installez un serveur d'identification (par exemple, sudo apt-get install oidentd ).
  2. Il y a un serveur Ident, mais il n'y a pas de 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 les 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 n'importe où).

  3. Peut-être que le nom d'utilisateur du shell ne correspond pas le rôle de la base de données. Vous pourrez peut-être tester cela en vous connectant au serveur d'identification pendant qu'une connexion est en cours et en transmettant les bons numéros de port.

  4. Peut-être souhaitez-vous réellement vous connecter avec un mot de passe , pas Ident. Modifiez le pg_hba.conf déposer convenablement. Par exemple, modifiez :

    host all all 127.0.0.1/32 ident
    

    à

    host all all 127.0.0.1/32 md5
    

Solution 2 :

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

en pg_hba.conf

remplacer par 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"

Solution 3 :

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 n'est pas sécurisé, mais si vous ne faites que déconner sur une machine virtuelle de développement comme moi, c'est probablement bien...


Linux
  1. Erreur :la validation md5 a échoué pour un problème de téléchargement possible avec PyYAML-3.11.zip ? [Solution]

  2. Échec du démarrage du serveur de base de données PostgreSQL - Agent d'authentification non enregistré pour le processus unix [Résolu]

  3. Échec du téléchargement des métadonnées pour le dépôt "AppStream" [CentOS]

  4. Désactiver le shell utilisateur pour des raisons de sécurité ?

  5. Erreur fatale :appel à la fonction non définie mysqli_connect() dans /home/user/public_html/includes/connection.php

Comment résoudre l'erreur MySQL :Accès refusé pour l'utilisateur [protégé par e-mail]

Désactiver l'authentification par mot de passe SSH pour un utilisateur ou un groupe spécifique

Modifier la méthode d'authentification pour l'utilisateur racine MySQL dans Ubuntu

Dépannage :Erreur MySQL/MariaDB #1044 Е Accès refusé pour l'utilisateur

Correctif - Erreur :Échec du téléchargement des métadonnées pour le flux d'applications du référentiel - CentOS 8

Comment résoudre l'erreur SSH "Trop d'échecs d'authentification pour l'utilisateur root" ?