Как отозвать доступ к *.* Для нового пользователя в MySQL?
В клиенте командной строки mysql 5.6 (при входе в систему как root) я создал пользователя с:
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
Затем предоставляются привилегии с:
GRANT ALL PRIVILEGES ON databasename.* TO 'admin'@'localhost';
При проверке привилегий с помощью:
SHOW GRANTS FOR 'admin'@'localhost';
Привилегии для назначенной базы данных выше, а также для:
GRANT USAGE ON *.* TO 'admin'@'localhost' IDENTIFIED BY PASSWORD...
Я пытался отозвать привилегию с:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'admin'@'localhost';
Но это не снимает использование на *.*
Как отменить доступ к *.*
для нового пользователя в MySQL?
1 ответ
Вы не можете на самом деле отменить ИСПОЛЬЗОВАНИЕ, не удаляя пользователя. USAGE - это привилегия глобального уровня:
Спецификатор привилегии USAGE означает "нет привилегий". Он используется на глобальном уровне с GRANT для изменения атрибутов учетной записи, таких как ограничения ресурсов или характеристики SSL, без влияния на существующие права учетной записи.
из привилегий, предусмотренных документацией MySQL.
Поэтому, если вы хотите удалить привилегию USAGE, просто используйте:
DROP USER 'admin'@'localhost';
Можно удалить грант USAGE от пользователя в MySQL, используя следующие
SHOW GRANTS FOR 'user'@'%';
если вы видите этот вывод команды
GRANT USAGE ON `<database>`.* TO 'user'@'%' WITH GRANT OPTION
затем, чтобы удалить его, используйте revoke с привилегиями очистки
REVOKE ALL PRIVILEGES ON `<database>`.* from 'user'@'%';
FLUSH PRIVILEGES;
REVOKE GRANT OPTION ON `<database>`.* from 'user'@'%';
FLUSH PRIVILEGES;
используйте эту команду для проверки обновленных прав пользователя
SHOW GRANTS FOR 'user'@'%';