我无法使用密码登录到psql,实际上我根本不了解PostgreSQL中身份验证的工作方式。
如果我执行以下命令,则要求输入re_managers密码,并且输入的密码是否匹配,我希望成功登录。
ubuntu@server:~/workspace $ psql -U re_manager -d testdb -W
但是无论出现什么错误它都会失败
psql: FATAL: Peer authentication failed for user "re_manager"
如果我将用户更改为re_manager,然后执行此操作,则它将正确登录:
re_manager@server:/home/ubuntu/workspace$ psql -d testdb
现在这真的很奇怪:如果我强制psql使用以下命令要求输入密码,
re_manager@server:/home/ubuntu/workspace$ psql -d testdb -W
然后它要求我输入密码,但接受任何密码。
很高兴提供一些解释。
感谢帮助
授予
答案 0 :(得分:0)
这就是对等身份验证的工作方式。当您登录到该SystemUser时具有SystemUser = a和DatabaseUser = a时,您可以访问由DatabaseUser创建的所有数据库和表。有关更多信息,Authentication Methode以及如何更改pg_hba.conf上的身份验证方法