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

MySQL запрашивает у пользователя привилегию SUPER для выполнения удаления

При попытке выполнить операцию удаления для таблицы mysql сообщает следующую ошибку:

Код ошибки 1227: доступ запрещен; вам нужна СУПЕР привилегия для этой операции.

Однако моему пользователю предоставлена ​​эта привилегия для всех таблиц в схеме:

ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ myschema. * TO 'my_admin' @ '%'

Почему он запрашивает у меня СУПЕР привилегию для удаления?

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

Если myadmin@10.11.12.13 имеет меньше привилегий, чем myadmin@% и вы входите в систему с 10.11.12.13, вы получаете привилегии первого.

Делать \s из клиента mysql, чтобы узнать, какой вы «текущий пользователь», затем SHOW GRANTS FOR этот пользователь.

Ты сделал FLUSH PRIVILEGES после выполнения GRANT, Я полагаю.

У меня такая же проблема. Причиной этого была неполная установка. Мне не удалось запустить mysql из командной строки с доступом root, потому что я не установил пароль root. Поэтому я переустановил mysql (в этом не было необходимости) - о да, сначала сделал резервную копию моих таблиц с помощью mysqldump: mysqldump --all-databases> huge_dump.dump (пароль не запрашивался) Вот ключ - Run сценарий mysql_secure_installation:

mysql_secure_installation

Bla Bla Bla - - - Введите текущий пароль для root (введите, если нет); НАЖМИТЕ ВВОД, так как вы еще не установили пароль root

Установить пароль root? [Д / Н] Д <--- скажи да !! Новый пароль: kick_me_hard Повторно введите новый пароль: kick_me_hard Пароль успешно обновлен! Перезагрузка таблиц привилегий .... . .Успех!

Теперь вы можете войти в систему с помощью phpMyAdmin или командной строки:

mysql -u root -p

Введите пароль: kick_me_hard Введите 'help;' или '\ h' для помощи бла бла бла

mysql>

Теперь ты самый крутой парень с тех пор, как починил это. Если только ты не один вокруг - ну тогда ты все равно самый крутой!

Другая возможность: возможно, существует триггер (например, удаление СОБЫТИЯ) для этой таблицы. Если вы удалите строки в этой таблице, он сработает триггер, но для выполнения триггеру требуется привилегия SUPER.

Взгляните на mysql.* таблицы. Возможно, для этой таблицы были установлены некоторые разрешения, которые лишают вас доступа. Я знаю, что разрешения MySQL обычно не работают таким образом, но на это стоит посмотреть.

Кроме того, имеет ли сам файл таблицы правильные разрешения файловой системы? Если MySQL не может писать в него, это может запутать подсистему разрешений относительно того, что не так.