具有Postgres 9.5中所有权限的用户的对等身份验证失败


14

我想创建一个只能访问指定数据库的用户。但是,它应该拥有所有许可。我在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" 

接下来我要做什么?


4
这不是题外话。因为在Ubuntu中设置软件是热门话题
Anwar

您的问题解决了吗?
安华

Answers:


16
  1. /etc/postgresql/9.5/main/pg_hba.conf以root用户访问权限打开

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. 在这些行中更改peermd5

    更换之前

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

1
谢谢,我必须将本地对等线路更改为md5,之后我才能成功登录。
Qeychon '16

更新任何版本::检查conf文件:sudo -u postgres psql -c "SHOW config_file"
Peter Krauss

我的是显示身份而不是同伴host all all 127.0.0.1/32 identhost all all ::1/128 ident
约瑟夫·K.19年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.