pgAdmin对PostgreSQL的访问控制
我有兴趣禁止pgAdmin从服务器以外的任何站点访问我的PostgreSQL server。是否可以使用pg_hba.conf执行此操作?PostgreSQL server仍应允许从其他站点访问我的应用程序的服务器 不,这是不可能的。这也不合理,因为客户机(访问模式)不是问题,而是您在连接上所做的事情 如果用户设法通过SQL注入或其他方式欺骗你的应用程序运行任意SQL,你就会回到原来的位置 相反,请将应用程序设置为使用以下受限用户角色:pgAdmin对PostgreSQL的访问控制,postgresql,pgadmin,Postgresql,Pgadmin,我有兴趣禁止pgAdmin从服务器以外的任何站点访问我的PostgreSQL server。是否可以使用pg_hba.conf执行此操作?PostgreSQL server仍应允许从其他站点访问我的应用程序的服务器 不,这是不可能的。这也不合理,因为客户机(访问模式)不是问题,而是您在连接上所做的事情 如果用户设法通过SQL注入或其他方式欺骗你的应用程序运行任意SQL,你就会回到原来的位置 相反,请将应用程序设置为使用以下受限用户角色: 不是超级用户 不拥有它使用的表 仅具有所需的最低权限
- 不是超级用户
- 不拥有它使用的表
- 仅具有所需的最低权限
- 使用
身份验证md5
- 如果使用在所有用户之间共享的单个db角色,则(a)不要这样做,或者(b)在配置中不明显的位置存储一个经过良好模糊处理的db密码副本,最好根据用户的本地凭据进行加密
- 使用
和服务器证书sslmode=verifyfull
- 在应用程序中嵌入客户端证书,并要求提供该证书,以便服务器允许连接(请参阅
实际上,如果您不相信自己的使用不会是恶意的,并且运行
DELETE FROM customer;
等…您将需要中间件来保护SQL连接并应用进一步的限制。速率限制访问、禁止批量更新等。您不能基于正在使用的SQL客户端应用程序阻止访问。您可以阻止访问但是,无论客户机是否适合使用hba_文件,都可以从除服务器以外的任何站点访问。谢谢大家的回答。