Xác thực ngang hàng không thành công cho người dùng với tất cả các đặc quyền trong Postgres 9.5


13

Tôi muốn tạo một người dùng chỉ có quyền truy cập vào cơ sở dữ liệu được chỉ định. Tuy nhiên, nó nên có tất cả sự cho phép. Tôi sử dụng Postgresql 9.5 trên Ubuntu 14.04. Vì vậy, trước hết, tôi tạo một người dùng mới:

$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

Tiếp theo tôi tạo một cơ sở dữ liệu mới với chủ sở hữu joe:

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

Sau đó, tôi cố gắng kết nối với người dùng joe để kết nối trên cơ sở dữ liệu của tôi myDB:

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

Tôi phải làm gì tiếp theo?


4
Đây không phải là lạc đề. bởi vì thiết lập phần mềm trong Ubuntu là theo chủ đề
Anwar

Vấn đề của bạn đã được giải quyết chưa?
Anwar

Câu trả lời:


15
  1. Mở /etc/postgresql/9.5/main/pg_hba.confvới quyền truy cập root

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. Thay đổi peerđể md5trong những dòng này.

    Trước khi thay đổi

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

    Sau khi bạn thay đổi

    # "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. Lưu tệp bằng cách nhấn Ctrl- O. Thoát nano bằng Ctrl-X

  4. Khởi động lại postgresql bằng cách sử dụng

    sudo service postgresql restart
    

1
cảm ơn bạn, tôi đã phải thay đổi dòng ngang hàng cục bộ thành md5, sau đó tôi có thể đăng nhập thành công.
Qeychon

Cập nhật cho mọi phiên bản:, để kiểm tra tệp conf:sudo -u postgres psql -c "SHOW config_file"
Peter Krauss

Của tôi đã được hiển thị danh tính thay vì ngang hàng host all all 127.0.0.1/32 ident,host all all ::1/128 ident
Joseph K.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.