У меня есть несколько баз данных MySQL на сервере, БД 1, mysql и БД 2. Я создал пользователя пользователя А. Я хочу отозвать доступ для пользователя А только для одной БД, скажем, mysql, так как это будет иметь несколько таблиц журнала. Я попробовал базовый синтаксис REVOKE, который не работает.
revoke select on mysql.* from [email protected];
Обратите внимание, что отзыв должен происходить только для БД mysql, а не для БД 1 и БД 2.
можете показать вывод forSHOW GRANTS FOR [email protected]; — person Sachindra schedule 19.08.2020
+————————————————- ——+ | Гранты для пользователя @localhost | +————————————————- ——+ | ПРЕДОСТАВЬТЕ ВСЕ ПРИВИЛЕГИИ НА . КОМУ ‘user’@’localhost’ | +————————————————- ——+ 1 ряд в наборе (0,00 сек) — person Sachindra schedule 19.08.2020
Пожалуйста, добавьте свою версию MySQL. До 8.0.16 вы не могли этого сделать, см. Как «вычесть» привилегии в MySQL, поэтому вам нужно будет удалить все права, а затем добавить привилегии для каждой БД. — person Sachindra schedule 19.08.2020
@Solarflare, версия 14.14, дистрибутив 5.7.31 — person Sachindra schedule 19.08.2020
также, согласно предоставленной вами ссылке справки, REVOKE INSERT, UPDATE ON mysql.* FROM [email protected];, там написано ОШИБКА 1141 (42000): Неизвестная ошибка 1141 — person Sachindra schedule 19.08.2020
Источник: