Бесплатная миграция IT-инфраструктуры в облако

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

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
18 февраля 2022 г.
4691
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, его можно сбросить и задать новый.

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';

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

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

DROP USER 'timeweb'@'localhost';

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

Query OK, 0 rows affected (0.00 sec)

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

SELECT User,Host FROM mysql.user;

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

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

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