我被卡住了。
任务:我需要某个Postgres用户拥有预定义密码的某个数据库。基本上,我不想为Django项目维护单独的开发设置,除了我们项目回购中的那些设置。
先决条件: Ubuntu上的PostgreSQL 9.1,数据库'项目'拥有所有者'项目'。 '项目'用户似乎也是超级用户,并且应该有密码' project'。当然有假名,只是因为NDA。 注意:我可以登录' postgres'用户,这就是我现在如何使用数据库。
问题:我尝试了一些方法,其中很明显可以在Stackoverflow或Google上找到,为这个用户设置密码,但仍然有密码验证失败'消息(见下文)。
我尝试过的事情:
ALTER ROLE project WITH PASSWORD 'project'
pg_hba.conf
中的设置,尝试了local all project peer
,local all project md5
也许我错过了一些简单明了的事情,请告诉我。
谢谢!
更新
以下是登录角色窗格中此用户的屏幕截图 -
答案 0 :(得分:1)
请参阅屏幕截图底部的部分:
.. VALID UNTIL'1970-01-01 00:00:00:
或
上方的“帐户过期”字段该到期日期错误,并解释了此帐户无法登录的原因。
据推测,你被这里提到的pgAdmin错误所困扰:
Postgres password authentication fails
TL; DR解决方案:ALTER USER username VALID UNTIL 'infinity';
(当然更新pgAdmin)。
答案 1 :(得分:0)
您的角色中是否设置了LOGIN属性? CREATE ROLE默认情况下不设置此属性。请参阅:http://www.postgresql.org/docs/9.1/static/role-attributes.html