Postgres 導入情報:
- バージョン: 13.3
- 展開: Kubernetes、Helm
- プロバイダー: https://www.crunchydata.com/ (pgo_client_version: 4.7.0)
目的:
- 接続プールのサポートを有効にする
- Crunchydata の文書化されたプーリング手順を使用する
実行された手順 (成功) :
pgo create pgbouncer mycluster
PgBouncer を追加するには- 基本的な接続テストはOK
psql -h hostname pgbouncer -U pgbouncer
問題: PgBouncer を使用せずにデータベースfoo_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 によるアクセスを許可する許可を与える必要がある他のユーザーはいますか?