无法使用我创建的用户连接到本地Postgresql数据库

时间:2014-10-16 22:12:22

标签: postgresql

我无法使用我创建的帐户(alex)连接到我的Linux Fedora设置上的本地Postgresql数据库。我尝试了很多不同的东西,包括将'方法'改为md5等。这是我的pg_hba.conf文件的副本:

local   all             all                                     peer
local   project         alex                                    peer
host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

用户'alex'具有登录权限和复制权限以及密码(加密)。

psql -U alex -d project -h 127.0.0.1
psql: FATAL:  Ident authentication failed for user "alex"

使用'-W'开关强制输入密码会导致这种情况发生:

psql -U alex -d project -h 127.0.0.1 -W
Password for user alex: 
psql: FATAL:  Ident authentication failed for user "alex"

2 个答案:

答案 0 :(得分:1)

您正在使用TCP / IP(-h 127.0.0.1-h localhost),因此它使用host行。 local行用于unix套接字,不适用于TCP / IP。

所以它选择了ident身份验证,它希望连接用户具有与他们连接的PostgreSQL用户相同的unix用户名。它在现代操作系统中也得不到很好的支持。 (我个人认为默认身份验证实际上是一个错误)。

我建议使用md5密码验证而不是ident。请记住重新加载配置以使更改生效。

或者,如果您当前的unix用户名与您希望连接的PostgreSQL用户的名称相匹配,请忽略-h 127.0.0.1在unix套接字上使用peer身份验证。

答案 1 :(得分:0)

修正了它,我猜这个条目越高,它在pg_hpa.conf文件中的优先级就越高。我删除了顶级对等条目,问题解决了。