0

我正在运行几个虚拟机,它们都有一个本地 postgresql 实例。这在克隆这样的机器时非常有用 - 本地数据库也将被克隆,并且不可能破坏主 vm 数据库内容。

出于性能原因,我想为所有虚拟机使用中央 postgresql 数据库,但我绝对必须确保克隆的虚拟机无法触及其主数据,即使它包含相同的用户名和密码。如果在对 postgres 的身份验证期间以某种方式使用客户端的 IP 地址,那将很容易实现。

换句话说,如果客户端的ip地址不匹配,即使用户名和密码匹配,我想拒绝访问postgresql,以避免我克隆的vm破坏它克隆的vm的数据。

请指教。

4

1 回答 1

1

PostgreSQL 通过pg_hba.conf文件进行基于主机的身份验证。

例如,要拒绝来自特定 IP 地址的任何连接10.0.0.1,您可以将其放在文件的开头:

host all all 10.0.0.1 拒绝

它还可以拒绝一系列地址

host all all 10.0.0.0/24 拒绝

或者,如果您更喜欢相反的方式,枚举授权地址而不是使用reject

托管所有 192.168.0.1 md5

没有被任何规则授权的主机将被拒绝,规则按照文件的顺序处理。

于 2013-09-03T13:58:00.833 回答