A autenticação de mesmo nível falhou para o usuário com todos os privilégios no Postgres 9.5

13

Quero criar um usuário que tenha acesso apenas a um banco de dados especificado. No entanto, deve ter toda a permissão. Eu uso o Postgresql 9.5 no Ubuntu 14.04. Então, primeiro, eu crio um novo usuário:

$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

Em seguida, crio um novo banco de dados com o proprietário joe:

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

Depois disso, tento conectar-me ao usuário joe para conectar no meu banco de dados myDB:

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

O que eu tenho que fazer a seguir?

Qeychon
fonte
4
Isso não é fora de tópico. porque a criação de software no Ubuntu é on-topic
Anwar
O seu problema está resolvido?
Anwar

Respostas:

15
  1. Abrir /etc/postgresql/9.5/main/pg_hba.confcom acesso root

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. Mude peerpara md5nestas linhas.

    Antes de mudar

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

    Após a sua alteração

    # "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. Salve o arquivo pressionando Ctrl- O. Saia do nano com Ctrl-X

  4. Reinicie o postgresql usando

    sudo service postgresql restart
    
Anwar
fonte
1
obrigado, eu tive que mudar a linha local peer para md5, depois que eu poderia entrar com sucesso.
Qeychon 4/16
Atualizando para qualquer versão :, para verificar o arquivo conf:sudo -u postgres psql -c "SHOW config_file"
Peter Krauss
Mina foram mostrando ident em vez de pares, host all all 127.0.0.1/32 ident,host all all ::1/128 ident
Joseph K.