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

Установите ограничения MySQL для каждой учетной записи, аналогичные виртуальному хостингу

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

Мне необходимо настроить Linux-систему для внутренней разработки и тестирования, для чего потребуется несколько учетных записей пользователей. Каждая учетная запись должна быть ограничена объемом пространства, занимаемого их базами данных MySQL, поскольку тестирование воля пытаюсь сломать вещи, и я хочу ограничить любой нанесенный ущерб.

Я предполагаю, что мне нужно будет настроить один экземпляр MySQL для каждой учетной записи с файлами базы данных в файловом пространстве этой учетной записи и ограничить это квотами. Это правильно, или есть другой способ, который я упустил из виду?

Другой вариант - запустить cronjob или демон, который отслеживает размеры базы данных и затем отменяет права вставки и обновления, когда они достигают указанного размера. Одним из таких инструментов является MySQL Quota Daemon.

http://lrem.net/software/mysql-quota-daemon.xhtml

Вы правы - в MySQL нет встроенной поддержки квот.

Имейте в виду, что при использовании дисковых квот для достижения вашей цели, когда у пользователя заканчивается пространство, MySQL может буферизовать операторы, которые не могут быть выполнены. Это может вызвать проблемы со стабильностью сервера. О проблемах целостности данных также сообщали люди, достигавшие предела диска (хотя это, вероятно, не влияет на все движки таблиц).