0

Postgres 部署信息

  • 版本:13.3
  • 部署:Kubernetes、Helm
  • 提供者:https ://www.crunchydata.com/(pgo_client_version:4.7.0)

目标

  1. 启用连接池支持
  2. 对 Crunchydata 使用记录的池化步骤

执行的步骤(成功)

  • pgo create pgbouncer mycluster添加 PgBouncer
  • 基本连接测试OKpsql -h hostname pgbouncer -U pgbouncer

问题:假设没有 PgBouncerfoo_db_1的情况下拥有foouser数据库,我可以成功连接数据库,但同样通过 PgBouncer 失败。

下面是我的数据库创建和许可的片段(这样只有这个用户才能访问这个数据库)

-- `foouser` is a non-super user
CREATE database foo_db_1 WITH OWNER=foouser ENCODING = 'UTF8' TABLESPACE = pg_default;
REVOKE connect ON DATABASE foo_db_1 FROM PUBLIC;
GRANT ALL PRIVILEGES ON DATABASE foo_db_1 to foouser;

现在,当我使用同一个用户(所有者)并尝试从 PgBouncer 访问它时,它会失败并显示错误消息

psql -h hostname-pgbouncer foo_db_1 -U foouser

psql: error: ERROR:  pgbouncer cannot connect to server
command terminated with exit code 2

注意:当我使用以下命令(示例)删除基于用户的权限时,PgBouncer 可以正常连接。

GRANT ALL PRIVILEGES ON DATABASE foo_db_1 to PUBLIC;

是否有任何其他用户需要我授予允许 pgbouncer 访问的权限?

4

0 回答 0