Autenticazione peer non riuscita per l'utente con tutti i privilegi in Postgres 9.5


14

Voglio creare un utente che abbia accesso solo a un database specificato. Tuttavia, dovrebbe avere tutte le autorizzazioni. Uso Postgresql 9.5 su Ubuntu 14.04. Quindi, prima di tutto, creo un nuovo utente:

$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

Quindi creo un nuovo database con il proprietario joe:

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

Successivamente, provo a connettermi con l'utente joe per connettermi al mio database myDB:

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

Cosa devo fare dopo?


4
Questo non è fuori tema. perché la configurazione del software in Ubuntu è in argomento
Anwar

Il tuo problema è stato risolto?
Anwar,

Risposte:


16
  1. Apri /etc/postgresql/9.5/main/pg_hba.confcon accesso root

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. Passare peera md5in queste righe.

    Prima di cambiare

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

    Dopo il tuo 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. Salvare il file premendo Ctrl- O. Esci da nano con Ctrl-X

  4. Riavvia postgresql usando

    sudo service postgresql restart
    

1
grazie, ho dovuto cambiare la linea peer locale in md5, dopo di che ho potuto accedere con successo.
Qeychon,

Aggiornamento per qualsiasi versione :, per controllare il file conf:sudo -u postgres psql -c "SHOW config_file"
Peter Krauss,

I miei stavano mostrando ident invece che peer host all all 127.0.0.1/32 ident,host all all ::1/128 ident
Joseph K.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.