【问题标题】:PostgreSQL: Access to database deniedPostgreSQL:拒绝访问数据库
【发布时间】:2013-04-29 12:48:31
【问题描述】:

我在 Ubuntu 12.04 服务器上使用 PostgreSQL 9.1。数据库实例通常运行良好,当我尝试通过服务器机器本身的 localhost 从 pgAdmin III 连接时,没有问题。

每当我尝试从服务器使用 LAN 地址 192.168.1.16 时,都会收到错误“Access to database denied.

据我所知,这种情况的常见罪魁祸首似乎是pg_hba.conf 文件中描述的配置,该文件当前包含以下内容:

host all all 192.168.0.1/32 md5

据我了解,该实例应该接受所有用户。我在这里有什么遗漏吗?

【问题讨论】:

  • 我只是尝试添加更多主机,没有运气.. local, hostssl, hostnossl 与 1/24 而不是 1/32 相同(无论如何我的服务器是 16)
  • 错误消息的完整、准确的文本是什么?原文(未翻译回英文)很好,有确切的文字更有帮助。
  • 塔塔利亚,做个测试。尝试将 ip 地址替换为“0.0.0.0/0”,并将“md5”替换为“trust”。不要忘记重启 postgresql 服务。
  • 如果您授予192.168.0.1/32 的访问权限并从192.168.0.16 连接,拒绝访问似乎是预期的结果。为子网提供对192.168.0.0/24 的访问权限,或为这台主机提供192.168.0.16/32 的访问权限。

标签: postgresql connection installation


【解决方案1】:

请注意,您正在尝试从 192.168.1.16 进行连接,但是,您的 pg_hba.conf 只允许 192.168.0.1(这就是 /32 的含义)。

查看https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#IPv4_CIDR_blocks 了解有关 CIDR 表示法的更多信息。

如果您只想允许192.168.1.16,您可以在pg_hba.conf 中添加以下行:

host all all 192.168.0.16/32 md5

然后,运行 pg_ctl reload 以应用上面所做的更改。

此答案假设您已经验证了 postgresql.conf 文件中的 listen_address 参数并且它绑定了正确的 IP 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 2016-03-02
    • 2014-04-17
    • 1970-01-01
    • 2011-01-20
    • 2014-06-14
    • 2012-09-08
    • 2012-12-13
    相关资源
    最近更新 更多