PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Obtention d'une erreur :l'authentification par les pairs a échoué pour l'utilisateur postgres, lors de la tentative de faire fonctionner pgsql avec des rails

Le problème est toujours votre pg_hba.conf fichier*.

Cette ligne :

local   all             postgres                                peer

Devrait être :

local   all             postgres                                md5

* L'emplacement de ce fichier n'est pas très cohérent. La commande locate pg_hba.conf devrait aider; voici quelques exemples :/etc/postgresql/*/main/pg_hba.conf et /var/lib/pgsql/data/pg_hba.conf .

Après avoir modifié ce fichier, n'oubliez pas de redémarrer votre serveur PostgreSQL. Si vous êtes sous Linux, ce serait sudo service postgresql restart .

Ce sont de brèves descriptions des deux options selon la documentation officielle de PostgreSQL sur les méthodes d'authentification.

Authentification des pairs

La méthode d'authentification homologue fonctionne en obtenant le nom d'utilisateur du système d'exploitation du client à partir du noyau et en l'utilisant comme nom d'utilisateur autorisé de la base de données (avec un mappage de nom d'utilisateur facultatif). Cette méthode n'est prise en charge que sur les connexions locales.

Authentification par mot de passe

Les méthodes d'authentification par mot de passe sont md5 et password. Ces méthodes fonctionnent de la même manière, à l'exception de la manière dont le mot de passe est envoyé via la connexion, à savoir le hachage MD5 et le texte clair respectivement.

Si vous êtes le moindrement préoccupé par les attaques de "reniflage" de mot de passe, alors md5 est préférable. Le mot de passe simple doit toujours être évité si possible. Cependant, md5 ne peut pas être utilisé avec la fonctionnalité db_user_namespace. Si la connexion est protégée par le cryptage SSL, le mot de passe peut être utilisé en toute sécurité (bien que l'authentification par certificat SSL puisse être un meilleur choix si l'on dépend de l'utilisation de SSL).

Exemple d'emplacement pour pg_hba.conf :
/etc/postgresql/9.1/main/pg_hba.conf