Thread: вопрос по pgBouncer
Есть одна идея по данному волшебному програмному продукту, однако либо моих знаний и/или возможностей сей программы не позволяет идею реализовать
Итак:
pgbouncer.ini
baza1 = host=127.0.0.1 port=5432 user=user1 password=passUser1
auth_file = C:\Program Files\PgBouncer\etc\userlist.txt
в userlist.txt
"vasya" "passvasya"
В итоге через pgbouncer я захожу в базу под пользователем vasya, которого фактически нету в постгрюхе.
Таким образом, все работают с БД с одним пользователем user1, но у каждого свой отдельный логин в pgBouncer
Но возникает вопрос. Для каждого пользователя я хочу инициировать свою процедуру
SELECT login(‘vasya’)
Которая соотв. действия делает в БД, в т.ч. и переменные инициирует
Так вот. Вопрос такой. Данная процедура должна запуститься по инициировании сессии.
В примере есть
forcedb = host=127.0.0.1 port=300 user=baz password=foo client_encoding=UNICODE datestyle=ISO connect_query='SELECT 1'
но могу ли я в connect_query= засунуть имя пользователя или как то при работе с самим pg воспользоваться именем именно из PgBouncer?
Заранее спасибо
нет.
можете юзать отдельные пулы
baza_vasya = host=127.0.0.1 port=5432 user=user1 password=passUser1 connect_query='SELECT vasya'
baza_masha = host=127.0.0.1 port=5432 user=user1 password=passUser1 connect_query='SELECT masha'
но походу вы решаете задачу не так, или задача не та.
еще можете через апликайшин_нейм (http://www.postgresql.org/docs/9.3/static/libpq-connect.html) при коннекте из конечного клиента пробрасывать "идентификатор" юзера (надо только чтобы это не было заигнорено в конфиге баунсера - ignore_startup_parameters http://pgbouncer.projects.pgfoundry.org/doc/config.html)
Михаил
DBA, avito.ru
Fri, 11 Apr 2014 18:51:56 +0700 от Владимир Комаров <vlads@sibnet.ru>:
Есть одна идея по данному волшебному програмному продукту, однако либо моих знаний и/или возможностей сей программы не позволяет идею реализовать
Итак:
pgbouncer.ini
baza1 = host=127.0.0.1 port=5432 user=user1 password=passUser1
auth_file = C:\Program Files\PgBouncer\etc\userlist.txt
в userlist.txt
"vasya" "passvasya"
В итоге через pgbouncer я захожу в базу под пользователем vasya, которого фактически нету в постгрюхе.
Таким образом, все работают с БД с одним пользователем user1, но у каждого свой отдельный логин в pgBouncer
Но возникает вопрос. Для каждого пользователя я хочу инициировать свою процедуру
SELECT login(‘vasya’)
Которая соотв. действия делает в БД, в т.ч. и переменные инициирует
Так вот. Вопрос такой. Данная процедура должна запуститься по инициировании сессии.
В примере есть
forcedb = host=127.0.0.1 port=300 user=baz password=foo client_encoding=UNICODE datestyle=ISO connect_query='SELECT 1'
но могу ли я в connect_query= засунуть имя пользователя или как то при работе с самим pg воспользоваться именем именно из PgBouncer?
Заранее спасибо