【问题标题】:Is there any way to protect PostgreSQL access via pgAdmin when an intruder changes pg_hba.conf file?当入侵者更改 pg_hba.conf 文件时,有什么方法可以通过 pgAdmin 保护 PostgreSQL 访问?
【发布时间】:2015-10-15 14:25:11
【问题描述】:

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

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

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

更新

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

【问题讨论】:

  • "机器上现在只有一个管理员帐户" - 这是真正的问题。请勿将管理员帐户用于系统维护以外的任何事情
  • 为什么用户可以写入pg_hba.conf?
  • 主要问题是安装此数据库(和使用它的程序)的计算机不是由我管理,而是通常由其他人管理。它早在我开始这个项目之前就以这种方式创建和工作了,直到现在我才真正考虑过它。

标签: database windows postgresql password-protection


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    也许将您的所有用户更改为limited。创建一个名为postgres 的用户,也就是limited,并将其设置为唯一可以读取/写入自己文件的用户。您将拥有您的管理员帐户,它仍然可以做任何您想做的事情。现在以postgres 用户身份运行 postgres 服务即可。

    ...别再给别人你的管理员密码了——你应该没问题的;)

    【讨论】:

      猜你喜欢
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2018-04-30
      • 2021-09-16
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多