web-dev-qa-db-fra.com

L'authentification entre homologues a échoué pour un utilisateur disposant de tous les privilèges dans Postgres 9.5

Je veux créer un utilisateur qui n'a accès qu'à une base de données spécifiée. Cependant, il devrait avoir toutes les autorisations. J'utilise Postgresql 9.5 sur Ubuntu 14.04. Alors tout d'abord, je crée un nouvel utilisateur:

$createuser --interactive joe
  Shall the new role be a superuser? (y/n) n
  Shall the new role be allowed to create databases? (y/n) n
  Shall the new role be allowed to create more new roles? (y/n) n

Ensuite, je crée une nouvelle base de données avec le propriétaire joe:

 $Sudo -u postgres psql 
 $CREATE DATABASE myDB OWNER joe;
 $GRANT ALL ON DATABASE myDB TO joe;

Après cela, j'essaie de me connecter avec l'utilisateur joe pour me connecter sur ma base de données myDB:

$psql myDB -U joe
psql: FATAL:  Peer authentication failed for user "joe" 

Qu'est-ce que je dois faire ensuite?

12
Qeychon
  1. Ouvrez /etc/postgresql/9.5/main/pg_hba.conf avec un accès root

     Sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. Remplacez peer par md5 dans ces lignes.

    Avant de changer

    # "local" is for Unix domain socket connections only
    local   all             all                                     peer
    # IPv4 local connections:
    Host    all             all             127.0.0.1/32            peer
    # IPv6 local connections:
    Host    all             all             ::1/128                 peer
    

    Après votre changement

    # "local" is for Unix domain socket connections only
    local   all             all                                     md5
    # IPv4 local connections:
    Host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    Host    all             all             ::1/128                 md5
    
  3. Enregistrez le fichier en appuyant sur Ctrl-O. Sortie nano avec Ctrl-X

  4. Redémarrez postgresql en utilisant

    Sudo service postgresql restart
    
10
Anwar