После нескольких лет использования MySQL я столкнулся с проблемой безопасности, которая меня сильно сбивает с толку.
Я создаю новую базу данных и нового пользователя, а затем предоставляю этому пользователю права CRUD только для новой БД.
Но когда я вхожу в систему через какой-либо клиент MySQL или через CLI mysql, я могу читать и изменять данные во всех базах данных.
Я перепроверил себя и убедился, что у меня должен быть доступ только к одной БД, но я могу получить доступ к каждой БД.
Есть ли какой-либо параметр для MySQL, который просто заставляет его игнорировать безопасность, и я случайно включил его?
Спасибо.
Да; если вы запустите MySQL с --skip-grant-tables
он обеспечивает свободный и легкий доступ ко всему каждому. Однако гораздо более вероятно, что вы испортили свою авторизацию и перманентную завивку (это действительно легко сделать); опубликуйте (вероятно, лучше в новом вопросе) набор запросов / операторов GRANT, которые вызвали проблемы (проверьте на рабочем сервере, что они действительно вызывают проблемы, которые, по вашему мнению, вызывают), и кто-то может объяснить, что пошло не так.
я не думаю, что ты сделал grant create,update,read,delete on *.* to 'user'@'localhost';
?
также убедитесь, что вы не используете неявный пользователь / пароль из ~/.my.cnf
файл, и запускаем mysql CLI с mysql -u user -p
(я имею в виду, что вы можете "войти в систему" как root @ localhost или что-то в этом роде ...)
show grants;
должен показать все разрешения, которые у вас есть, и какой вы «пользователь».
После перезапуска ушло - странно, мониторинг буду.
Спасибо всем, кто ответил.