如何允许从任何位置连接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:他们仍然可以尝试强行输入密码。即使他们没有成功,这仍然令人头痛。最好不要给他们机会。