Postgres保护访问

我想configuration我的Postgres实例,以便只有本地计算机和我的机器(通过互联网)应该能够访问数据库。 postgresql.conf文件具有参数listen_addresses ,可用于设置允许访问的IP地址列表。

所以我把它设置为listen_addresses 'localhost,abcd'这意味着它将授予访问localhostabcd这就是说,我的IP地址。 但在这种情况下,它只是授予访问本地主机。

listen_addresses 'abcd'也不起作用。 我再次检查互联网的IP地址,但它是正确的。 我试过了

 listen_addresses 'localhost' // works only for local machine. listen_addresses '*' // works for both local and my machine listen_addresses 'localhost,abcd' // does not work for my machine listen_addresses 'abcd' // does not work for my machine 

所以我在这里错过了什么?

你已经理解了听错地址的概念。

listen_addresses是运行PostgreSQL的服务器上的接口的IP地址列表,可以用来连接PostgreSQL服务。

因此,例如,您的PostgreSQL服务器的IP地址为192.168.10.1 ,您需要指定:

 listen_addresses 'localhost,192.168.10.1'; 

这意味着所有可以访问IP地址192.168.10.1客户端都可以连接到PostgreSQL服务器。

如果你想通过连接客户端的IP地址来限制连接,那么你有两个select:

  1. 使用PostgreSQL的基于主机的访问机制来使用pg_hba.conf对连接应用IP限制。 查看客户端authentication 。
  2. 添加防止连接到PostgreSQL端口的防火墙规则,除了您要允许的IP地址之外的所有IP地址。