我正在运行几个都有本地postgresql实例的虚拟机。克隆此类计算机时这很好 - 本地数据库也将被克隆,并且无法破坏主vm数据库内容。
出于性能原因,我想为所有虚拟机使用中央postgresql数据库,但我绝对必须确保克隆的虚拟机无法触及其主数据,即使它包含相同的用户名和密码。如果在对postgres进行身份验证期间以某种方式使用客户端的IP地址,那将很容易实现。
换句话说,如果客户端的IP地址不匹配,即使用户名和密码匹配,我也想拒绝访问postgresql,以避免我克隆的vm破坏了克隆的vm的数据。
请告知。
答案 0 :(得分:1)
PostgreSQL通过pg_hba.conf
file进行基于主机的身份验证。
要拒绝来自特定IP地址的任何连接,例如10.0.0.1
,您可以将其放在文件的开头:
主持所有10.0.0.1拒绝
它也可以拒绝一系列地址
主持所有10.0.0.0/24拒绝
或者,如果您更喜欢相反的方式,请枚举授权地址,而不是使用reject
主持所有192.168.0.1 md5
未经任何规则授权的主机将被拒绝,并按照文件的顺序处理规则。