我发现我的postgresql数据库服务器在通过pgadmin远程连接时不需要用户postgres
的密码。我的意思是当我从本地计算机通过pgAdmin连接到远程数据库服务器时。
我确实在psql中添加了一个密码,ALTER USER postgres PASSWORD 'mypassword'
。
这是我的pg_hba.config文件:
/usr/local/pgsql/bin/psql -qAt -c "show hba_file" | xargs grep -v -E '^[[:space:]]*#'
local all all trust
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
host all all ::1/128 md5
所以,我不是很理解这里到底发生了什么。
有人能帮忙吗?
非常感谢。
更新:
如果我改变:
local all all trust
为了
local all all md5
现在,本地连接(通过SSH)将要求输入密码(之前没有要求密码)但远程连接仍然可以无需密码连接。
实际上,我尝试从另一台服务器的Rails应用程序连接到此数据库服务器,而无需密码,Rails服务器也可以正常启动。
方便起见,此处放置结果
这个问题的真正原因是.pgpass
文件。Mac会将密码存储在用户主目录下的.pgpass
文件中。每次用户尝试无密码登录时,PostgreSQL都会为用户发送密码。
官方文档在这里
ALTER USER postgres PASSWORD 'mypassword'
。 - Yunwei.W127.0.0.1
或从远程主机连接?如果您正在通过Unix套接字连接,则根据您的配置,不应该期望出现密码提示,因为您正在使用Unix套接字(“本地”)的“信任”模式。 - Craig Ringerpg_hba.conf
中的所有设置,并逐行手动添加它们。对此还有其他想法吗? - Yunwei.W