Назад | Перейти на главную страницу

Анализируйте журнал запросов MySQL, чтобы найти соответствующие разрешения

На сервере клиента настроен только один пользователь, у которого есть глобальные права на все действия. Мы хотим изменить это на одного пользователя на приложение с минимально необходимыми разрешениями.

Для этого, ничего не нарушая, мы хотели бы проанализировать журнал запросов, чтобы узнать, какие запросы выполняются. Есть такой инструмент?

Желательно было бы сказать, что только ВЫБРАТЬ, ВСТАВИТЬ, ОБНОВИТЬ и УДАЛИТЬ были выполнены, и мы могли удалить все другие разрешения.

Не существует инструмента, который мог бы анализировать журнал запросов и сообщать вам, что будет выполняться сейчас и в любое время на его основе, просто потому, что нет способа узнать, является ли журнал запросов исчерпывающим списком всех запросов, которые могут быть сгенерированы. программным обеспечением.
Чтобы сделать это определение, вам нужно посмотреть на реальный код, выполняющий запросы.

Если у вас нет доступа к фактическому коду, лучше всего в вашей ситуации создать учетные записи для каждого приложения, которые имеют доступ только к базе данных, необходимой для конкретного приложения, и не могут запускать какие-либо DDL заявления - это как минимум устранит Маленькие столики Бобби проблема (и, откровенно говоря, любая система, в которой код запускает операторы DDL, вероятно, в корне сломана и требует тщательной переоценки для правильного ограничения разрешений).

Сделайте это в своей среде разработки (она у вас есть, верно?) И проверьте, правильно ли работают ваши приложения. Будьте особенно осторожны с жестко запрограммированными именами пользователей / паролями, которые вы можете не уловить.
Если вам не повезло провести тестирование среды разработки в нерабочее время с отключенным доступом к затронутым приложениям для всех пользователей, кроме вашей внутренней группы разработки / тестирования.


После этого вы можете решить, имеет ли смысл накладывать дополнительные ограничения на некоторые части приложения (например, учетные записи только для чтения, учетные записи, которые могут только INSERT или UPDATE но нет DELETE, и т.д.)