Otentikasi rekan gagal untuk pengguna dengan semua hak istimewa di Postgres 9.5

14

Saya ingin membuat pengguna yang hanya memiliki akses ke database yang ditentukan. Namun, harus memiliki semua izin. Saya menggunakan Postgresql 9.5 di Ubuntu 14.04. Jadi pertama-tama, saya membuat pengguna baru:

$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

Selanjutnya saya membuat database baru dengan pemilik joe:

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

Setelah itu, saya mencoba untuk terhubung dengan pengguna joe untuk terhubung pada database myDB saya:

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

Apa yang harus saya lakukan selanjutnya?

Qeychon
sumber
4
Ini bukan di luar topik. karena pengaturan perangkat lunak di Ubuntu adalah pada topik
Anwar
Apakah masalah Anda terpecahkan?
Anwar

Jawaban:

16
  1. Buka /etc/postgresql/9.5/main/pg_hba.confdengan akses root

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. Ubah peerke md5dalam baris ini.

    Sebelum berubah

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

    Setelah kembalianmu

    # "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. Simpan file dengan menekan Ctrl- O. Keluar dari nano dengan Ctrl-X

  4. Mulai ulang postgresql menggunakan

    sudo service postgresql restart
    
Anwar
sumber
1
terima kasih, saya harus mengubah jalur local peer ke md5, setelah itu saya bisa login dengan sukses.
Qeychon
Memperbarui untuk semua versi :, untuk memeriksa file conf:sudo -u postgres psql -c "SHOW config_file"
Peter Krauss
Milik saya menunjukkan ident bukan peer host all all 127.0.0.1/32 ident,,host all all ::1/128 ident
Joseph K.