在 Postgres 9.5 中,具有所有權限的使用者的對等身份驗證失敗

在 Postgres 9.5 中,具有所有權限的使用者的對等身份驗證失敗

我想建立一個只能存取指定資料庫的使用者。但是,它應該獲得所有許可。我在 Ubuntu 14.04 上使用 Postgresql 9.5。首先,我建立一個新使用者:

$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

接下來,我與所有者 joe 創建一個新資料庫:

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

之後,我嘗試與用戶 joe 連接以連接我的資料庫 myDB:

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

接下來我該怎麼辦?

答案1

  1. /etc/postgresql/9.5/main/pg_hba.conf使用root權限開啟

     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-退出 nanoX

  4. 使用以下命令重新啟動 postgresql

    sudo service postgresql restart
    

相關內容