如何配置PostgreSQL以接受所有传入连接


106

我有一个PostgreSQL数据库,我想将其配置为接受所有传入连接,而不管源IP地址如何。如何在pg_hba.conf文件中进行配置?我正在使用PostgreSQL版本8.4。

Answers:


216

只需使用0.0.0.0/0

host    all             all             0.0.0.0/0            md5

确保listen_addressesin postgresql.conf(或ALTER SYSTEM SET)允许所有可用IP接口上的传入连接。

listen_addresses = '*'

更改后,您必须重新加载配置。一种方法SELECT是以超级用户身份执行此操作。

SELECT pg_reload_conf();

这真的适用于类型md5吗?我认为有必要使用类型trust...
Dan LaRocque 2010年

5
“信任”允许所有用户连接而无需任何密码。那是我不会使用的东西,密码是您应始终使用的最低要求。即使在您自己的计算机上。
Frank Heikens 2010年

1
嗯,我对问题的理解有所不同-我以为他的意思是无条件地接受所有客户端的连接(也许对于一些不重要的测试平台)。我明白你现在正在得到什么。
丹·拉洛克

6
注意:如果您的网络是IPv6,则在修改pg_hba.conf文件时需要使用::/0而不是0.0.0.0/0
阿隆·博耶特

2
确保postgres具有强密码:sudo -u postgres psql\password
Adobe

47

0.0.0.0/0 对于所有IPv4地址

::0/0 对于所有IPv6地址

all 匹配任何IP地址

samehost 匹配服务器自己的任何IP地址

samenet 匹配服务器直接连接到的任何子网中的任何地址。

例如

host    all             all             0.0.0.0/0            md5


0

在centos上使用postgres 12配置所有文件:

步骤1:搜索和编辑文件

须藤vi /var/lib/pgsql/12/data/pg_hba.conf

按“ i”并在IPv4行更改

host    all             all             0.0.0.0/0            md5

第2步:搜索和编辑文件postgresql.conf

须藤vi /var/lib/pgsql/12/data/postgresql.conf

添加最后一行:listen_addresses ='*':wq!(保存文件)-步骤3:重新启动

systemctl restart postgresql-12.service

-6

将此行添加到postgres文件夹的pg_hba.conf

host    all    all    all    trust

“信任”允许所有用户连接而无需任何密码。


您可以在代码中添加一些注释吗?放在哪里以及如何工作?
Alistra '17

4
尽管此代码段是受欢迎的,并且可能会提供一些帮助,但是如果它包含有关如何以及为什么可以解决此问题的说明,则可以大大改善。请记住,您将来会为读者回答问题,而不仅仅是现在问的人!请编辑您的答案以添加说明,并指出适用的限制和假设。
Toby Speight

允许来自所有
ip的
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.