Я подумал, что спрошу, но потом подумал: « подождите секунду, а что, если ... » и попытался ОБНОВИТЬ
таблицу пользователей сам ... и ВОЙЛА! MySQL действительно ДАЙТЕ МНЕ сделать это!
Итак, вот оно:
Вопрос : Как восстановить недостающую привилегию EVENT?
Ответ :
mysql> UPDATE mysql.user SET Event_priv='Y' WHERE User='root';
Query OK, 1 row affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.14 sec)
Затем снова войдите в MySQL, и все - SHOW GRANTS
снова показывает root, имеющий ВСЕ ПРИВИЛЕГИИ
.
Итак (и это мое предположение, поправьте меня, если я ошибаюсь), пока у вас все еще есть UPDATE
, которая влияет на таблицы привилегий mysql, вы можете практически предоставить любую привилегию себе или другим вручную).
Я уверен, что это концептуально ОК (поскольку у меня есть ] ОБНОВЛЕНИЕ
...), но в качестве примечания я бы сказал, что это довольно странно, что я могу изменить свои собственные привилегии на больший набор.
Вы должны знать о параметре запуска MySQL - skip-grant-tables - он позволяет обойти проверку разрешений в целях восстановления. Демон, запущенный с этой опцией, разрешит вход в систему root без пароля с предоставленными ВСЕМИ ПРИВИЛЕГАМИ. С этого момента вы можете изменить все, что захотите.
Примечание: поскольку работа с учетной записью root без пароля может представлять угрозу безопасности,