我不懂pg_hba.conf文档。
似乎我可以添加此条目:
host all all md5
或此条目
host all all *.*.*.*/* md5
允许从任何地方进行访问。
但是,我不仅可以使用我的VirtualBox guest虚拟机IP 10.0.2.15连接到我的本地数据库,如果我没有
host all all 127.0.0.1/32 md5
然后即使使用0.0.0.0
和127.0.0.1
我需要添加什么行以允许使用密码身份验证从任何IP(包括我的VirtualBox中的Docker容器)进行访问?
这是我当前的标准hb_pga.conf文件:
local all postgres peer
local all all peer
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
答案 0 :(得分:3)
(以下所有内容均基于documentation for Postgres 9.5,但我不知道此语法有任何重大更改,因此它应该适用于最近含糊不清的任何内容。)
据我所知,该行
host all all md5
是无效的语法。使用host
记录类型时,可以使用以下格式
host database user address auth-method [auth-options]
host database user IP-address IP-mask auth-method [auth-options]
所以至少有四个额外的参数,而你只提供了三个。
根据你的评论,行
host all all 0.0.0.0/0 md5
将允许来自所有IP地址的连接(基于后续密码验证)。 /0
是要验证的IP地址的位(字面上的位)的掩码。 /0
表示您想忽略整个事情,即允许所有地址。掩码1.2.3.4/0
意味着完全相同的东西。通常不允许从任何地方进行访问,但如果您正在处理面向非公共的VM或Docker容器,那么就可以了。
如果您使用的是IPv6连接,则语法非常相似:
host all all ::/0 md5
对于它的价值,我从未遇到过语法
host all all *.*.*.*/* md5