我有一个 PostgreSQL 数据库,我想将其配置为接受所有传入连接,无论源 IP 地址如何。如何在
pg_hba.conf
文件中进行配置?我正在使用 postgreSQL 版本 8.4。
只需使用
0.0.0.0/0
。
host all all 0.0.0.0/0 md5
(或
postgresql.conf
)中的 ALTER SYSTEM SET
允许所有可用 IP 接口上的传入连接。
listen_addresses = '*'
更改后您必须重新加载配置。一种方法是作为超级用户执行此
SELECT
。
SELECT pg_reload_conf();
注意:要更改
listen_addresses
,重新加载是不够的,必须重新启动服务器。
0.0.0.0/0
适用于所有 IPv4 地址
::0/0
适用于所有 IPv6 地址
all
匹配任何 IP 地址
samehost
匹配任何服务器自己的 IP 地址
samenet
匹配服务器直接连接到的任何子网中的任何地址。
例如
host all all 0.0.0.0/0 md5
除了上述很好的答案之外,如果您想要授权某些范围的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
在 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
转到此位置 (/etc/postgresql/12/main) 中的 pg_hba.conf 文件并在末尾添加以下行:
host all all 0.0.0.0/0 md5
它允许所有用户访问所有数据库。
通过编写此命令重新启动 Postgresql
service postgresql restart
欲了解更多信息,请查看错误详细信息
正如我在 Windows Server 2022 上所做的那样:
托管所有 127.0.0.1/32 scram-sha-256
更改为:
托管所有 0.0.0.0/0 scram-sha-256
保存它
启动服务.msc 程序
查找 postgresql-x64-16 - PostgreSQL Server 16
右键单击“停止”菜单
右键单击“开始”菜单
再次运行程序pgAdmin4。
在Windows Server防火墙中打开端口5432
将此行添加到 postgres 文件夹的 pg_hba.conf
host all all all trust
“信任”允许所有用户无需任何密码即可连接。