我可以使用pgpass.conf文件中没有的帐户,使用psql连接到数据库,而无需指定密码。我想被提示输入密码。这怎么可能?
psql -U mike -d employees
我已确认psql使用'mike'帐户连接:
employees=> \conninfo
You are connected to database "employees" as user "mike" on host "localhost" at port "5432".
我已经确认该帐户具有密码。
select * from pg_shadow;
postgres=# select * from pg_shadow;
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig
------------------+----------+-------------+----------+---------+--------------+-------------------------------------+----------+-----------
mike| 59736 | f | f | f | f | md5c223b8b4c619d6c9ffb4cf3522284be6 | |
我已经确认我的文件系统上只有一个pgpass.conf文件。
设置:
答案 0 :(得分:2)
在上面的评论部分由Laurenz Albe提供。
问题出在pg_hba.conf中。基本上需要更改的是
这是我修复它的方法。这很棘手。更改pg_hba.conf中的设置很容易。困难的部分是重新加密数据库中的现有密码以使其与新设置匹配,以便以后仍可以使用它们进行登录。
进一步的注意:无需对服务器进行重置即可启用对pg_hba.conf所做的更改。