当入侵者更改 pg_hba.conf 文件时,有什么方法可以通过 pgAdmin 保护 PostgreSQL 访问吗?

Is there any way to protect PostgreSQL access via pgAdmin when an intruder changes pg_hba.conf file?

我有一个受密码保护的 PostgreSQL 数据库(运行 在 windows 上),未经授权的人使用这个简单的技巧多次访问它 as described here:

  1. 正在停止 PostgreSQL Windows 服务
  2. 更改 md5 以信任 pg_hba.conf 文件
  3. 正在启动 Windows 服务
  4. 无需密码即可通过 pgAdmin 访问数据库

有什么办法可以阻止这个机制吗?我一直在考虑多个 windows 用户(现在机器上只有一个管理员帐户)具有有限的文件更改权限,但我担心数据库功能,我更喜欢更直接的解决方案.

更新

感谢大家的回复,他们都非常有帮助。 现在对我来说很明显,用户帐户是正确的方式 - 可能是唯一正确的方式。

或许将您的所有用户更改为 limited。创建一个名为 postgres 的用户,也就是 limited 并将其设置为唯一可以 read/write 拥有自己的文件的用户。您将拥有您的管理员帐户,仍然可以做任何您想做的事情。现在 运行 作为用户 postgres 的 postgres 服务就完成了。

...并停止向他人提供您的管理员密码——您应该没问题;)

确实,解决问题的方法不是查看 PostgreSQL,而是查看您的 Windows 安全性。一旦某人获得管理员权限,就没有什么可以阻止此人更改任何内容 - 这包括您的 PostgreSQL 设置。即使您设置了数据库密码并为 pg_hba.conf 文件设置了适当的权限,未经授权的人仍然可以更改权限,或者以单用户模式启动数据库(不需要密码)并修改密码。

创建单独的 Windows 用户帐户,使用密码保护管理员,并停止使用管理员帐户进行日常工作。