pgbouncer: пользователь, пароль на пул - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь настроить пул pgbouncer, который подключается к базе данных, используя определение пула, которое включает в себя пользователя и пароль.

Впоследствии каждое клиентское приложение должно подключаться с использованием другого пользователя и пароля.Идея состоит в том, что один пул совместно используется несколькими клиентами.

Возможно ли это?

Вот мои настройки: pgbouncer.ini

[databases]
testpool = host=testpool.mycompany.com dbname=db1 port=544 user=company_dbo password=company123 max_db_connections=20

[pgbouncer]
auth_type = plain
auth_file = /etc/pgbouncer/users.txt

users.txt

"test_user" "test123"

Когда я пытаюсь подключиться, я получаю ошибку ниже

$ export PGPASSWORD='test123';psql -h localhost -U test_user -d db1 -p 5442
psql: ERROR:  password authentication failed for user "test_user"

И в журналах написано

2019-03-03 16:04:02.668 1 LOG C-0x2022000: db1/test_user@172.17.0.1:33204 login attempt: db=db1 user=test_user tls=no
2019-03-03 16:04:02.719 1 LOG S-0x2026fd0: db1/test_user@10.1.0.118:5442 new connection to server (from 172.17.0.2:58920)
2019-03-03 16:04:02.762 1 WARNING server login failed: FATAL password authentication failed for user "test_user"

Похоже, что pgbouncer пытается войти в базу данных, используя имя пользователя и пароль клиента, а не имя пользователя и пароль, указанные в разделе [databases].

1 Ответ

0 голосов
/ 04 марта 2019

auth_file используется для аутентификации пользователя с помощью pgBouncer, а не для предоставления другого пароля для использования с базой данных.pgBouncer будет использовать пароль, полученный от клиента, для входа в PostgreSQL.

Я не знаю, какую проблему вы пытаетесь решить таким образом, но, возможно, вы можете использовать trust аутентификацию между pgBouncer и PostgreSQL иполностью избавиться от бремени аутентификации с помощью pgBouncer.

В pgBouncer нет способа «изменить личность».

...