如何允许从任何位置连接PostgreSQL server?

如何允许从任何位置连接PostgreSQL server?,postgresql,Postgresql,我不理解pg_hba.conf文档。似乎我可以添加以下条目: host all all md5 还是这个条目 host all all *.*.*.*/* md5 允许从任何地方访问 但是,如果我没有这两行代码,我不仅不能使用我的VirtualBox来宾IP连接到本地数据库10.0.2.15 host all all 127.0.0.1/32 md5 即使使用0.0.0.0和127.0.0.1 我需要添

我不理解
pg_hba.conf
文档。似乎我可以添加以下条目:

host    all    all                 md5
还是这个条目

host    all    all     *.*.*.*/*   md5
允许从任何地方访问

但是,如果我没有这两行代码,我不仅不能使用我的VirtualBox来宾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
(以下所有内容都基于,但我不知道该语法有任何重大变化,因此它应该适用于任何模糊的最新内容。)

据我所知,这条线

host    all    all                 md5
不是有效的语法。使用
主机
记录类型时,以下格式可用

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
的含义完全相同。允许从任何地方访问通常都不是最佳做法,但如果您处理的是面向非公共的虚拟机或Docker容器,那么就可以了

如果您使用的是IPv6连接,语法非常相似:

host    all    all ::/0 md5
值得一提的是,我从未见过语法

host    all    all     *.*.*.*/*   md5

我看到0.0.0.0/0是有效的。但是为什么呢?为什么上面的不起作用?我可能是个愚蠢的问题,但是,当您尝试登录时,会收到什么错误消息?关于pg_hba.conf的某些信息不允许使用此地址是的,有时错误的精确措辞很重要。您可能还需要为IPv6连接添加一个条目只有当有人拥有您的密码时,公共数据库才会有危险,对吗?只要这是超级机密,那么即使你允许任何连接,他们也无能为力?有点。最好完全拒绝连接,这样就没有人知道那里甚至有数据库。你可以通过锁门来吓唬小偷,但如果你可以把房子完全藏起来,那为什么不这样做呢?@Richard:他们仍然可以尝试强行输入密码。即使他们没有成功,这仍然令人头痛。最好不要给他们机会。