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

问题描述 投票:0回答:7

我有一个 PostgreSQL 数据库,我想将其配置为接受所有传入连接,无论源 IP 地址如何。如何在

pg_hba.conf
文件中进行配置?我正在使用 postgreSQL 版本 8.4。

postgresql
7个回答
343
投票

只需使用

0.0.0.0/0

host    all             all             0.0.0.0/0            md5

确保 listen_addresses

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

listen_addresses = '*'

更改后您必须重新加载配置。一种方法是作为超级用户执行此

SELECT

SELECT pg_reload_conf();

注意:要更改

listen_addresses
,重新加载是不够的,必须重新启动服务器。


76
投票

0.0.0.0/0
适用于所有 IPv4 地址

::0/0
适用于所有 IPv6 地址

all
匹配任何 IP 地址

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

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

例如

host    all             all             0.0.0.0/0            md5

10
投票

除了上述很好的答案之外,如果您想要授权某些范围的IP,您可以编辑

/var/lib/pgsql/{VERSION}/data
文件并添加类似

的内容

host    all             all             172.0.0.0/8        trust

它将接受来自上述范围内任何主机的传入连接。 来源: http://www.linuxtopia.org/online_books/database_guides/Practical_PostgreSQL_database/c15679_002.htm


9
投票

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

第1步:搜索并编辑文件

sudo vi /var/lib/pgsql/12/data/pg_hba.conf

按“i”并在 IPv4 行更改

host    all             all             0.0.0.0/0            md5

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

sudo vi /var/lib/pgsql/12/data/postgresql.conf

添加最后一行:listen_addresses = '*' :wq! (保存文件)

第3步:重新启动

systemctl 重新启动 postgresql-12.service


4
投票

转到此位置 (/etc/postgresql/12/main) 中的 pg_hba.conf 文件并在末尾添加以下行:

host  all  all 0.0.0.0/0 md5

它允许所有用户访问所有数据库。

通过编写此命令重新启动 Postgresql

service postgresql restart

欲了解更多信息,请查看错误详细信息


0
投票

正如我在 Windows Server 2022 上所做的那样:

  1. 转到文件夹 C:\Program Files\PostgreSQL\data
  2. 用Notepad++程序打开pg_hba.conf文件
  3. 字符串:“# IPv4 本地连接:”

托管所有 127.0.0.1/32 scram-sha-256

更改为:

托管所有 0.0.0.0/0 scram-sha-256

  1. 保存它

  2. 启动服务.msc 程序

  3. 查找 postgresql-x64-16 - PostgreSQL Server 16

  4. 右键单击“停止”菜单

  5. 右键单击“开始”菜单

  6. 再次运行程序pgAdmin4。

  7. 在Windows Server防火墙中打开端口5432


-12
投票

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

host    all    all    all    trust

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

© www.soinside.com 2019 - 2024. All rights reserved.