Vous obtenez cette erreur parce que l'authentification du client échoue. D'après le message d'erreur, vous avez probablement la configuration postgres par défaut, qui définit la méthode d'authentification du client à "IDENT" pour toutes les connexions PostgreSQL.
Vous devez absolument lire la section 19.1 Authentification du client dans le Manuel PostgreSQL pour mieux comprendre les paramètres d'authentification disponibles (pour chaque enregistrement dans pg_hba.conf ), mais voici l'extrait pertinent pour vous aider à résoudre le problème que vous rencontrez (à partir de la page d'accueil du site Web de la Commission européenne). manuel version 9.5 ):
confiance
Autoriser la connexion sans condition. Cette méthode permet à toute personne qui peut se connecter au serveur de base de données PostgreSQL de se connecter en tant que n'importe quel PostgreSQL qu'ils souhaitent, sans avoir besoin d'un mot de passe ou d'une autre authentification. autre authentification. Voir la section 19.3.1 pour plus de détails.
rejeter
Rejeter la connexion sans condition. Ceci est utile pour "filtrer certains hôtes d'un groupe, par exemple, une ligne de rejet peut empêcher un bloquer la connexion d'un hôte spécifique, alors qu'une ligne ultérieure permet aux les autres hôtes d'un réseau spécifique de se connecter.
md5
Exiger du client qu'il fournisse un mot de passe à double hachage MD5 pour l'authentification. l'authentification. Voir la section 19.3.2 pour plus de détails.
mot de passe
Demander au client de fournir un mot de passe non chiffré pour l'authentification. Puisque le mot de passe est envoyé en texte clair sur le réseau, cette méthode ne doit pas être utilisée sur des réseaux non fiables. Voir la section 19.3.2 pour plus de détails.
gss
Utilisez GSSAPI pour authentifier l'utilisateur. Ceci n'est disponible que pour les connexions TCP/IP uniquement. Voir la section 19.3.3 pour plus de détails.
sspi
Utilisez SSPI pour authentifier l'utilisateur. Cette option n'est disponible que sous Windows. Voir la section 19.3.4 pour plus de détails.
ident
Obtenez le nom d'utilisateur du système d'exploitation du client en contactant l' serveur d'identification sur le client et vérifiez s'il correspond au nom d'utilisateur de la nom d'utilisateur de la base de données. L'authentification Ident ne peut être utilisée que sur des connexions TCP/IP. TCP/IP. Lorsqu'elle est spécifiée pour des connexions locales, l'authentification par les pairs sera utilisée à la place. Voir la section 19.3.5 pour plus de détails.
pair
Obtenez le nom d'utilisateur du système d'exploitation du client à partir du système d'exploitation et vérifiez s'il correspond à la demande. et vérifiez s'il correspond au nom d'utilisateur de la base de données demandé. Ce site n'est disponible que pour les connexions locales. Voir la section 19.3.6 pour détails.
ldap
Authentification à l'aide d'un serveur LDAP. Voir la section 19.3.7 pour plus de détails.
rayon
Authentifier en utilisant un serveur RADIUS. Voir la section 19.3.8 pour plus de détails.
certificat
Authentification à l'aide de certificats clients SSL. Voir la section 19.3.9 pour détails.
pam
Authentification à l'aide du service PAM (Pluggable Authentication Modules) fourni par le système d'exploitation. Voir la section 19.3.10 pour plus de détails.
Donc ... pour résoudre le problème que vous rencontrez, vous pouvez faire l'une des choses suivantes :
-
Modifiez la ou les méthodes d'authentification définies dans votre système de gestion de l'information. pg_hba.conf
pour trust
, md5
ou password
(en fonction de vos besoins de sécurité et de simplicité) pour les enregistrements de connexion locale que vous avez définis à cet endroit.
-
Mise à jour pg_ident.conf
pour affecter les utilisateurs de votre système d'exploitation à utilisateurs PostgreSQL et de leur accorder les privilèges d'accès correspondants, en fonction de vos besoins.
-
Ne touchez pas aux paramètres de l'IDENT et créez des utilisateurs dans votre base de données pour l'IDENT. chaque utilisateur du système d'exploitation auquel vous voulez accorder l'accès. Si un utilisateur est déjà authentifié par le système d'exploitation et qu'il est connecté, PostgreSQL ne demandera pas d'authentification supplémentaire et accordera l'accès à cet utilisateur en fonction de ses privilèges (rôles). l'accès à cet utilisateur en fonction des privilèges (rôles) qui lui sont attribués dans la base de données. base de données. Il s'agit de la configuration par défaut.
Remarque : L'emplacement de pg_hba.conf
y pg_ident.conf
dépend du système d'exploitation.
0 votes
Ce post de stackoverflow a fonctionné pour moi : stackoverflow.com/a/18664239/2110769