我试图在Postgres中设置一个只读用户,但他们无法login。 我不确定下一步要解决这个问题。
当我尝试以用户XXXX身份login时,出现错误 – psql:FATAL:用户“XXXX”的密码validation失败
看看日志文件,我看到以下几行:
< 2014-05-20 10:22:24.830 NZST >FATAL: password authentication failed for user "XXXX" < 2014-05-20 10:22:24.830 NZST >DETAIL: Connection matched pg_hba.conf line 104: "host DATABASENAME XXXX 10.0.0.0/8 md5"
当然,我已经尝试多次重置密码,但无济于事。 我试图从MD5更改为密码,没有工作。 有趣的是,将authentication机制设置为“信任”确实奏效。
我正在使用Postgres 9.3。
我无法删除这个用户重置它 – 我得到一个错误“错误:angular色”XXXX“不能被删除,因为一些对象依赖于它细节:数据库的权限DATABASENAME”
如果我创build一个新用户,那么新用户连接到数据库没有问题。 (我在pg_hba.conf中重复了相应的行并修改了用户名)
发出命令“授予所有DBNAME到XXXX”似乎没有任何区别。
当我做了一个\ ddp命令我得到
Default access privileges Owner | Schema | Type | Access privileges ----------+--------+----------+------------------- postgres | public | sequence | XXXX=r/postgres postgres | public | table | XXXX=r/postgres
我不完全确定为什么这应该阻止我完全放弃用户并重新创build它们,或者如何(安全地)修复这个问题。
任何有关正在发生的事情或如何进一步debugginglogin问题将深表赞赏。
当得到这个错误时:
psql:FATAL:用户“XXXX”的密码validation失败
尽pipe密码是正确的,接下来要检查的是帐户的有效性:
SELECT usename, valuntil FROM pg_user;
请参阅PostgreSQL用户在更改密码后无法连接到服务器,以了解PgAdmin中的错误可能会错误地重置此valuntil ,从而导致用户无法连接所提到的错误消息。
如果这是你的情况,你可以解决它:
ALTER USER username VALID UNTIL 'infinity';
我已经挣扎了几次,并提出了以下方法。
1)修改pg_hba.conf,并为“本地”和“主机”条目设置authentication模式为“信任”:
当地所有的信任
主机全部都是127.0.0.1/32信任
2)重新启动数据库:postgres $ pg_ctl restart
3)进入数据库并设置postgres密码:
postgres $ psql
postgres =#改变用户postgres密码“mypassword”;
改变angular色
postgres =#\ q
4)在pg_hba.conf中将authentication机制设置回密码:
本地所有的所有密码
主机全部全部为127.0.0.1/32的密码
(我认为这也可以用于md5authentication,但还没有尝试过)
5)最后一次重新启动数据库:postgres $ pg_ctl restart