Comment configurer postgresql pour qu’il accepte l’authentification par login + mot de passe?

J’ai une nouvelle installation d’ubuntu 10.10 avec toutes les mises à jour et postgresql 8.4
Pour que postgresql accepte les connexions login + mot de passe, je l’ai configuré via:

sudo su postgres psql ALTER USER postgres WITH PASSWORD 'password'; CREATE DATABASE myapp; \q exit sudo vi /etc/postgresql/8.4/main/pg_hba.conf change "local all all indent" to "local all all trust" 

Mais, étonnamment, cela ne fonctionne pas! La commande

 psql -U postgres password 

Evalue avec erreur:

 psql: FATAL: Ident authentication failed for user "postgres" 

Des astuces pour que le psql -U fonctionne?

C’est probablement une bonne idée de laisser l’utilisateur “postgres” avec l’authentification par identifiant. Par défaut, je pense qu’Ubuntu utilise l’utilisateur “postgres” pour effectuer des mises à niveau, des sauvegardes, etc., ce qui nécessite qu’il puisse se connecter sans mot de passe spécifié.

Je recommande de créer un autre utilisateur (probablement avec votre propre nom d’utilisateur) et de lui donner également des privilèges d’administrateur. Ensuite, vous pouvez utiliser cet utilisateur avec des mots de passe sur les connexions locales.

Voici à quoi ressemblent les parties pertinentes de mon pg_hba.conf:

 # allow postgres user to use "ident" authentication on Unix sockets # (as per recent comments, omit "sameuser" if on postgres 8.4 or later) local all postgres ident sameuser # allow all other users to use "md5" authentication on Unix sockets local all all md5 # for users connected via local IPv4 or IPv6 connections, always require md5 host all all 127.0.0.1/32 md5 host all all ::1/128 md5 

Notez également que le psql -U postgres password ne fera pas ce que vous voulez. Le mot de passe ne doit jamais être spécifié sur la ligne de commande. Cela va essayer de se connecter en tant qu’utilisateur “postgres” à une firebase database nommée “password”.

Vous devriez utiliser psql -U postgres myapp place. Postgres vous demandera automatiquement un mot de passe s’il est configuré correctement pour en exiger un.

Si nous voulons que le mot de passe soit rempli automatiquement, placez-le dans le fichier $ HOME / .pgpass

Je pense que votre fichier pg_ident.conf est mal configuré. Aussi, avez-vous essayé

 psql -U postgres -W 

Une autre chose qui peut causer ceci est des informations d’identification expirées. Je ne pense pas que cela s’est produit dans la version 8, mais dans la version 9 lorsque vous créez un nouveau rôle dans pgadmin, il est créé dans un état expiré et vous devez modifier ou effacer la date d’expiration du rôle avant de pouvoir vous connecter avec il.