Как сменить пароль на СУБД не прерывая работу приложения-клиента?

Вводные:
Хост 1. Приложение, логин-пароль к СУБД хранятся локально. SLA 24/7.
Хост 2. СУБД. Может быть любая: от MongoDB до Sybase ASE.

Задача:
Без прерывания работы приложения сменить пароль для логина СУБД.

Есть ли какие-то действенные способы, кроме таких:
1) синхронная смена пароля (минимальное время простоя, но он есть);
2) создание второго логина, переключение приложения на него, деактивация первого логина (неконсистентность с точки зрения документального учета: логин аппрувился один, а работает по факту другой).
  • Вопрос задан
  • 332 просмотра
Пригласить эксперта
Ответы на вопрос 4
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
На хосте1 одной командой (sed -i) меняется пароль в файле настроек, и через точку-с-запятой (;) второй командой (sql-client-tool <cmd.sql) отправляются инструкции SQL-серверу на смену пароля. Время выполнения - микродоли секунды, моргнуть не успеете.
Ответ написан
BojackHorseman
@BojackHorseman
...в творческом отпуске...
Логин на сессию действителен. рубить сессию и требовать аутентификацию по новому логину
Ответ написан
solotony
@solotony
ушел пить чай %)
надо смотреть где и как ваша конкретна субд хранит настройки доступа и можно ли их менять не перезапуская сервер.

в mysql, postgre ничего не надо перезапускать - поменял пароль и сделал flush privileges.
Ответ написан
Помимо смены пароля на сервере, надо ведь еще поменять пароль на клиенте (а их может быть много), так что на мой взгляд все же вариант 2. Вводится новый пользователь, прописывается на клиентах, когда старый пользователь уже точно не используется - удаляется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы