Как правильно удалить пользователя MySQL

Когда вы устанавливаете MySQL, в ней сразу есть учетная запись root с практически безграничными правами. Она нужна в том числе для того, чтобы создавать, изменять и удалять других пользователей из базы данных.

Давайте разберемся с тем, как удалить пользователя MySQL. Эта инструкция будет актуальной также для MariaDB. Операционные системы — Linux и Unix-подобные.

Как Правильно Удалить Пользователя My SQL

Авторизация в MySQL с правами суперпользователя

Допустим, у вас есть MySQL-сервер на cloud.timeweb.com. Авторизуйтесь на нем как суперпользователь — root:

mysql -u root -p password

После аргумента -u укажите имя учетки — root. После аргумента -p укажите пароль root-пользователя MySQL (это не пароль пользователя root в операционной системе). Если вы забыли пароль root MySQL, его можно сбросить и задать новый.

Просмотр записей

Чтобы не ошибиться, предварительно посмотрите, какие профили есть на сервере БД. В 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';

Удаление аккаунта MySQL

Если пользователь не нужен, удалите его:

DROP USER 'timeweb'@'localhost';

В ответ должно вернуться:

Query OK, 0 rows affected (0.00 sec)

Можно проверить, все ли корректно, запросив список профилей:

SELECT User,Host FROM mysql.user;

Оператор DROP USER удаляет одну или несколько учетных записей MySQL и их привилегии. Поэтому отзыв разрешений — необязательный шаг, если в итоге вы решаете удалить аккаунт полностью.

DROP USER не закрывает автоматически открытые сеансы. В случае удаления пользователя с открытым сеансом изменения не вступят в силу до тех пор, пока сеанс не будет закрыт. Уже после закрытия сеанса профиль удалится, следующая попытка входа завершится неудачно.

Telegram
VK
Скопировать ссылку
Как использовать Axios в React
Как использовать Axios в React
Как пользоваться SSH
Как пользоваться SSH

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону