2015-07-11 82 views
1

我在6432端口上运行我的postgres-9.2,在5432端口上运行pgbouncer。很少有同事客户机在服务器机器上的5432端口上具有防火墙连接权限。但作为数据库管理员,我想限制一些IP地址访问数据库。如何限制特定主机连接到pgbouncer?

但是,虽然我阻止了pg_hba.conf文件,但由于允许pgbouncer端口,所以它们能够访问。

我可以阻止在操作系统防火墙级别,但我不想接受我的系统管理员的帮助。那么,是否有任何方法来限制和拒绝IP地址访问pgbouncer,正如我们通常通过pg_hba.conf为postgresql所做的那样。

请建议。

回答

-1

您可以设置AUTH_USER在pgbouncer(5)Pgbouncer Config

“如果AUTH_USER设置,在AUTH_FILE没有指定任何用户都可以从放在pg_shadow在数据库中使用AUTH_USER查询。AUTH_USER的密码将采取来自auth_file“。

+0

这限制了用户而不是主机。 – rotten

+0

嗨@rotten这是一个依赖于postgres pg_shadow和pg_hba.cof的工作解决方案客户端身份验证由基于主机的身份验证控制答案包含参考。 pg_hba.cof数据库用户IP地址IP掩码auth-method [auth-options] hostssl数据库用户IP地址IP掩码auth-method [auth-options] hostnossl数据库用户IP地址IP掩码的示例auth-method [auth-options]参考https://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html – pnorton

0

https://pgbouncer.github.io/2015/12/pgbouncer-1-7

从V1.6的主要变化是用于TLS连接,HBA控制 文件和认证通过UNIX等UID支持。

所以从1.7开始你有hba文件,就像vanil postgres一样。因此,通过IP过滤连接非常简单。

此外,您可以使用一些技巧,连接后删除连接,如我最近的其他答案https://stackoverflow.com/a/46191949/5315974中所述 - 但这又是一个迫切需要摆脱连接的技巧。在while循环或作为工作中使用这些技巧通常是一个坏主意。

相关问题