karabanov
@karabanov
Системный администратор

Как перехватить ввод в mysqlsh?

Здравствуйте.

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

Скажите пожалуйста есть ли способ с помощью плагина для mysqlsh перехватить ввод, что бы отправить его боту?

Искал в документации, читал исходники плагинов, но не увидел способа реализации...
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
karabanov
@karabanov Автор вопроса
Системный администратор
Написал даже "цетравому" разработчику mysqlsh... Способа перехватить ввод не существует.
В общем написал имитацию shell на Python - работает, в целом, как задумывалось.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Swartalf
> которые разрешат/запретят выполнение запроса.
и оставлять зависшей транзакцию с полной блокировкой таблицы? ну такое себе.

Я бы сделал через триггеры(для операции транкейт не помню, можно ли в Mysql создать триггер, но для удаления точно прокатит).
По триггеру удаления, делается бекап старых сданных методом копирования в другую таблицу + можно сделать вставку в таблицу для бота, с которой он будет понимать что нужно отправить сообщение про то что произошло нужное событие. ну а там уже по факту сообщения, можно будет понимать какие данные были удалены, нужно ли их восстанаввать, да логирование какое ни какое.

но тут не стоит забывать что триггера это доп нагрузка на базу+могут быть ньюансы
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы