การรับรองความถูกต้องแบบเพียร์ล้มเหลวสำหรับผู้ใช้ที่มีสิทธิ์ทั้งหมดใน Postgres 9.5


14

ฉันต้องการสร้างผู้ใช้ที่มีสิทธิ์เข้าถึงฐานข้อมูลที่ระบุเท่านั้น อย่างไรก็ตามควรได้รับอนุญาตทั้งหมด ฉันใช้ Postgresql 9.5 บน Ubuntu 14.04 ก่อนอื่นเลยฉันสร้างผู้ใช้ใหม่:

$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

ต่อไปฉันจะสร้างฐานข้อมูลใหม่กับเจ้าของโจ:

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

หลังจากนั้นฉันพยายามเชื่อมต่อกับ user joe เพื่อเชื่อมต่อกับฐานข้อมูลของฉัน myDB:

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

ฉันต้องทำอะไรต่อไป


4
นี่ไม่ใช่ Off-topic เนื่องจากการตั้งค่าซอฟต์แวร์ใน Ubuntu นั้นเป็นหัวข้อ
Anwar

ปัญหาของคุณได้รับการแก้ไขหรือไม่?
Anwar

คำตอบ:


16
  1. เปิด/etc/postgresql/9.5/main/pg_hba.confด้วยการเข้าถึงรูท

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. เปลี่ยนpeerเป็นmd5ในบรรทัดเหล่านี้

    ก่อนที่จะเปลี่ยน

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

    หลังจากการเปลี่ยนแปลงของคุณ

    # "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. บันทึกไฟล์ที่มีการกด-Ctrl Oออกจากนาโนด้วยCtrl-X

  4. รีสตาร์ท postgresql โดยใช้

    sudo service postgresql restart
    

1
ขอบคุณฉันต้องเปลี่ยนเพียร์ท้องถิ่นเป็น md5 หลังจากนั้นฉันสามารถเข้าสู่ระบบได้สำเร็จ
Qeychon

การอัปเดตสำหรับเวอร์ชันใด ๆ :, เพื่อตรวจสอบไฟล์ conf:sudo -u postgres psql -c "SHOW config_file"
Peter Krauss

เหมืองแร่ถูกแสดง ident แทนเพียร์host all all 127.0.0.1/32 ident,host all all ::1/128 ident
โจเซฟเค
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.