La autenticación de pares falló para el usuario con todos los privilegios en Postgres 9.5

14

Quiero crear un usuario que solo tenga acceso a una base de datos específica. Sin embargo, debe tener todo el permiso. Yo uso Postgresql 9.5 en Ubuntu 14.04. Entonces, antes que nada, creo un nuevo usuario:

$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

A continuación, creo una nueva base de datos con el propietario joe:

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

Después de eso, trato de conectarme con el usuario Joe para conectarme a mi base de datos myDB:

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

¿Qué tengo que hacer a continuación?

Qeychon
fuente
44
Esto no está fuera de tema. porque configurar software en Ubuntu es un tema
Anwar
¿Su problema está resuelto?
Anwar

Respuestas:

16
  1. Abrir /etc/postgresql/9.5/main/pg_hba.confcon acceso root

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. Cambiar peera md5en estas líneas.

    Antes de cambiar

    # "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
    

    Después de su cambio

    # "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. Guarde el archivo presionando Ctrl- O. Salga de nano con Ctrl-X

  4. Reinicie postgresql usando

    sudo service postgresql restart
    
Anwar
fuente
1
gracias, tuve que cambiar la línea local par a md5, después de eso pude iniciar sesión con éxito.
Qeychon
Actualización para cualquier versión :, para verificar el archivo conf:sudo -u postgres psql -c "SHOW config_file"
Peter Krauss
Los míos mostraban identidad en lugar de igual host all all 127.0.0.1/32 ident,host all all ::1/128 ident
Joseph K.