Больше не нужно искать работу мечты — присоединяйтесь к команде Клауда

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

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
18 февраля 2022 г.
3393
3 минуты чтения
Средний рейтинг статьи: 5

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

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

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

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

Допустим, у вас есть MySQL-сервер на timeweb.cloud. Авторизуйтесь на нем как суперпользователь — 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 не закрывает автоматически открытые сеансы. В случае удаления пользователя с открытым сеансом изменения не вступят в силу до тех пор, пока сеанс не будет закрыт. Уже после закрытия сеанса профиль удалится, следующая попытка входа завершится неудачно.

18 февраля 2022 г.
3393
3 минуты чтения
Средний рейтинг статьи: 5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server