Thread: [pgsql-ru-general] сменить пароли/доступы к БД без даунтайма
Имеется следующая структура 1. Pg 2. N бакендов с разных хостов ходящих в БД с выбранным login/passwod 3. M бакендов с разных хостов ходящих туда же но через pgbouncer задача сменить login/password юзеру от имени которого они все ходят (все от одного ходят) вопрос как правильно сделать? создать еще одного юзера и потихоньку переводить бакенды на него? не будет ли тут каких камней подводных в том что некоторое время несколько юзеров будут в одну и ту же БД писать? -- . ''`. Dmitry E. Oboukhov : :’ : email: unera@debian.org jabber://UNera@uvw.ru `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
Attachment
[pgsql-ru-general] Re: [pgsql-ru-general] сменить пароли/доступы к БД без даунтайма
From
Vladimir Borodin
Date:
Привет.
6 марта 2017 г., в 14:50, Dmitry E. Oboukhov <unera@debian.org> написал(а):
Имеется следующая структура
1. Pg
2. N бакендов с разных хостов ходящих в БД с выбранным login/passwod
3. M бакендов с разных хостов ходящих туда же но через pgbouncer
задача сменить login/password юзеру от имени которого они все ходят
(все от одного ходят)
вопрос как правильно сделать?
создать еще одного юзера и потихоньку переводить бакенды на него? не
будет ли тут каких камней подводных в том что некоторое время
несколько юзеров будут в одну и ту же БД писать?
Не будет, если раздать одинаковые grant’ы обоим пользователям. Мы ровно так и делаем регулярно. Больно, но способа лучше, кажется, пока нет.
Re: [pgsql-ru-general] Re: [pgsql-ru-general] сменить пароли/доступы к БД без даунтайма
From
"Dmitry E. Oboukhov"
Date:
>> создать еще одного юзера и потихоньку переводить бакенды на него? не >> будет ли тут каких камней подводных в том что некоторое время >> несколько юзеров будут в одну и ту же БД писать? > Не будет, если раздать одинаковые grant’ы обоим пользователям. Мы ровно так и > делаем регулярно. Больно, но способа лучше, кажется, пока нет. И вот непонятно мне как задать правильно гранты. У меня было так: CREATE ROLE $user PASSWORD $password; CREATE DATABASE $db WITH OWNER $user; теперь я хочу еще одного юзера который ходит в ту же БД: CREATE ROLE $newuser PASSWORD $newpassword; GRANT ALL PRIVILEGES ON DATABASE $db TO $newuser WITH GRANT OPTION ADMIN; И новый юзер коннектится итп, но при попытке что-то сделать скажем с индексами или еще чем, получается такая ошибка: db=> DROP INDEX CONCURRENTLY tmp; ERROR: must be owner of relation tmp какие еще гранты дать чтобы заменить юзера $user на $newuser (при том что некоторое время они должны мочь поработать одновременно)? -- . ''`. Dmitry E. Oboukhov : :’ : email: unera@debian.org jabber://UNera@uvw.ru `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
Attachment
Re: [pgsql-ru-general] Re: [pgsql-ru-general] сменить пароли/доступы к БД без даунтайма
From
"Dmitry E. Oboukhov"
Date:
>> Не будет, если раздать одинаковые grant’ы обоим пользователям. Мы ровно так и >> делаем регулярно. Больно, но способа лучше, кажется, пока нет. > И вот непонятно мне как задать правильно гранты. все разобрался GRANT $olduser TO $newuser; -- . ''`. Dmitry E. Oboukhov : :’ : email: unera@debian.org jabber://UNera@uvw.ru `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
Attachment
Re: [pgsql-ru-general] [pgsql-ru-general] сменить пароли/доступы к БД без даунтайма
From
Антон Мазунин
Date:
> 19 марта 2017 г., в 20:00, Dmitry E. Oboukhov <unera@debian.org> написал(а): > >>> Не будет, если раздать одинаковые grant’ы обоим пользователям. Мы ровно так и >>> делаем регулярно. Больно, но способа лучше, кажется, пока нет. > >> И вот непонятно мне как задать правильно гранты. > > все разобрался > > GRANT $olduser TO $newuser; > -- > > . ''`. Dmitry E. Oboukhov > : :’ : email: unera@debian.org jabber://UNera@uvw.ru > `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 > `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537 Как раз сегодня занимался тем же. Но схема была несколько иная: create role newuser login inherit password 'pass' grant olduser to newuser Таким образом старый пользователь становится группой ( а новый наследует все его гранты) , но при этом логиниться и работатьможет. Дальше перевожу все что к базе цепляется на нового пользователя, меняю у старого пароль и переключаю все обратно.