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

  4. 使用以下方法重启 postgresql

    sudo service postgresql restart
    

相关内容