Когда вы устанавливаете MySQL, в ней сразу есть учетная запись root с практически безграничными правами. Она нужна в том числе для того, чтобы создавать, изменять и удалять других пользователей из базы данных.
Давайте разберемся с тем, как удалить пользователя MySQL. Эта инструкция будет актуальной также для MariaDB. Операционные системы — Linux и Unix-подобные.
Допустим, у вас есть MySQL-сервер на timeweb.cloud. Авторизуйтесь на нем как суперпользователь — root:
mysql -u root -p password
После аргумента -u
укажите имя учетки — root. После аргумента -p
укажите пароль root-пользователя MySQL (это не пароль пользователя root в операционной системе). Если вы забыли пароль root MySQL, его можно сбросить и задать новый.
dbaas
Чтобы не ошибиться, предварительно посмотрите, какие профили есть на сервере БД. В MySQL просмотр пользователей выполняется командой:
SELECT User,Host FROM mysql.user;
В списке отобразится имя и адрес хоста. Информация представлена в виде обычной таблицы.
Допустим, вам нужно в MySQL удалить пользователя с именем `timeweb@localhost`. Сначала проверьте, какие у него есть разрешения:
SHOW GRANTS FOR 'timeweb'@'localhost';
В ответе вернется таблица с описанием прав — например, что у этого аккаунта есть все привилегии в базе данных `timeweb_db`.
Вы получили через MySQL список пользователей и прав. Дальше нужно решать, что делать с профилем. Необязательно удалять его. Можно для начала отозвать привилегии. Учетка останется, но будет ограниченной.
Чтобы отозвать разрешения, выполните команду:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'timeweb'@'localhost';
Вместо 'timeweb'@'localhost' подставьте имя пользователя, у которого нужно отобрать возможность управлять таблицами и базами данных.
В ответ должен вернуться статус:
Query OK, 0 rows affected (0.00 sec)
Можно проверить, все ли корректно, запросив список привилегий еще раз:
SHOW GRANTS FOR 'timeweb'@'localhost';
Если пользователь не нужен, удалите его:
DROP USER 'timeweb'@'localhost';
В ответ должно вернуться:
Query OK, 0 rows affected (0.00 sec)
Можно проверить, все ли корректно, запросив список профилей:
SELECT User,Host FROM mysql.user;
Оператор DROP USER
удаляет одну или несколько учетных записей MySQL и их привилегии. Поэтому отзыв разрешений — необязательный шаг, если в итоге вы решаете удалить аккаунт полностью.
DROP USER
не закрывает автоматически открытые сеансы. В случае удаления пользователя с открытым сеансом изменения не вступят в силу до тех пор, пока сеанс не будет закрыт. Уже после закрытия сеанса профиль удалится, следующая попытка входа завершится неудачно.
Подготовили для вас выгодные тарифы на DBaaS