Thread: вопрос по pgBouncer

вопрос по pgBouncer

From
Владимир Комаров
Date:

Есть одна идея по данному волшебному програмному продукту, однако либо моих знаний и/или возможностей сей программы не позволяет идею реализовать

Итак:

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?

 

Заранее спасибо

Re: [pgsql-ru-general] вопрос по pgBouncer

From
Миша Тюрин
Date:
> но могу ли я в 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?

 

Заранее спасибо