LINUX.ORG.RU
решено ФорумAdmin

Пользователи для PgBouncer

 ,


0

3

Появилось желание попробовать PgBouncer. Но не могу уловить что у него с пользователями.

Раньше завести пользователя можно было в текстовом файле, но «Since PostgreSQL 9.0, the text files are not used anymore. Thus the auth file needs to be generated. See ./etc/mkauth.py for sample script to generate auth file from pg_shadow table.» Хорошо, попробуем:

# ./mkauth.py "/etc/pgbouncer/password.txt" "dbname='template1' user='someuser' host='127.0.0.1' port='6432' password='password'"
Traceback (most recent call last):
  File "./mkauth.py", line 17, in <module>
    db = psycopg2.connect(sys.argv[2])
  File "/usr/lib64/python2.7/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: ERROR:  No such database: template1

Изменим конфигурацию:

# ./mkauth.py "/etc/pgbouncer/password.txt" "dbname='template1' user='someuser' host='127.0.0.1' port='6432' password='password'"
Traceback (most recent call last):
  File "./mkauth.py", line 17, in <module>
    db = psycopg2.connect(sys.argv[2])
  File "/usr/lib64/python2.7/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: ERROR:  no pg_hba.conf entry for host "192.168.192.168", user "someuser", database "template1", SSL off

Хорошо, попробуем такого пользователя, который есть в pg_hba.conf

# ./mkauth.py "/etc/pgbouncer/password.txt" "dbname='database' user='dbuser' host='127.0.0.1' port='6432' password='password'"
Traceback (most recent call last):
  File "./mkauth.py", line 17, in <module>
    db = psycopg2.connect(sys.argv[2])
  File "/usr/lib64/python2.7/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: ERROR:  No such user: dbuser

Как его правильно попросить завести пользователя?

★★★★★

dbuser - такой юзер есть в userlist.txt ? ну или на какой там у тебя файл опция auth_file указывает в pgbouncer.ini

v9lij ★★★★★ ()
Последнее исправление: v9lij (всего исправлений: 1)
Ответ на: комментарий от v9lij

Думал что mkauth.py сам создаёт userlist.txt и добавляет в него что заявлено. Но сейчас попробовал создать файл и вписать имя пользователя, получил ту же ошибку.

Здесь: https://newbiedba.wordpress.com/2016/07/11/how-to-generate-authentication-fil... говорится что-то про таблицу pg_shadow, но это на постгресе или у себя? Здесь http://blog.bsdmaster.com/2011/07/pgbouncer-postgresql.html говорится что у него есть интерфейс в виде псевдо базы, может быть в нём? Или нужен доступ к СУБД?

sin_a ★★★★★ ()
Ответ на: комментарий от sin_a

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

/etc/pgbouncer/pgbouncer.ini

[databases]
template1 = dbname=template1
postgres = dbname=postgres

auth_file = /etc/pgbouncer/userlist.txt

/etc/pgbouncer/userlist.txt
"postgres" "password1"
"stats" "password2"

v9lij ★★★★★ ()
Ответ на: комментарий от v9lij

Про userlist.txt пишут, что Since PostgreSQL 9.0, the text files are not used anymore. Хотя я конечно попробую. Теперь уже завтра с утра.

Про [databases] не очень понятно, там можно не указывать параметры авторизации? Тогда оно будет авторизоваться в СУБД с данными из userlist.txt?

sin_a ★★★★★ ()
Ответ на: комментарий от sin_a

Since PostgreSQL 9.0, the text files are not used anymore.

обманывают. Я гоняю те конфиги, что скинул выше, на 9.4/9.5/9.6. Всё работает прекрасно. Про тот вариант генерации конфигов авторизации что-то слышал, но не было реально необходимости пробовать, архитектура моего проекта позволяет юзать userlist.

v9lij ★★★★★ ()
Ответ на: комментарий от v9lij

Спасибо, заработало. Вот и читай после этого man в браузере... В мануале из пакета этих слов нет.

sin_a ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.