【问题标题】:Postgresql does not prompt for passwordPostgresql 不提示输入密码
【发布时间】:2009-08-26 15:18:31
【问题描述】:

我在 linux 机器上设置了一个 postgresql 8.3 db,还有一个用户 postgres pg_hba.conf 读取

local   all         postgres                          ident sameuser
local   all         all                               md5

所以没有来自本地机器的可信连接。

然而,当通过命令行使用 psql 连接时,不需要密码,所有用户都可以访问所有数据库。

我完全迷路了..

【问题讨论】:

  • 有没有设置PG开头的环境变量? (例如 PGUSER、PGHOST 等)
  • @j_random_hacker ~/.pgpass 文件是我的问题,谢谢!甚至不知道它的存在。它也包含明文密码......我删除了它,现在 PostgreSQL 要求输入密码,正如预期的那样。
  • 很高兴听到@CamilB :)

标签: postgresql login


【解决方案1】:

您确定在 pg_hba.conf 更改后重新启动或重新加载 PostgreSQL 吗?

如果是,请从 postgres 系统帐户(shell)输入此命令:

psql -qAt -c "show hba_file" | xargs grep -v -E '^[[:space:]]*#'

如果这没有帮助 - 向我们展示命令的输出。

【讨论】:

  • 事实证明,由于奇怪的混淆,我正在查看错误的 conf 文件。感谢show hba_file发现(之前不知道这个命令)
  • 我正在重新创建一个 postgresql 配置,该命令帮助我将新配置与旧配置进行比较。 +1 和加星标的问题。
【解决方案2】:

您必须在 pg_hba.conf 中更改 IPv4 和 IPv6 的两行

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

需要重启服务器。

【讨论】:

    【解决方案3】:

    试试

     host   all   all   127.0.0.1/32        md5
    

    改为。

    【讨论】: