Сброс привилегий MySQL

Как проверить статус MySQL в Ubuntu База данных

Чтобы обеспечить безопасность базы данных, для конкретных пользователей устанавливаются определенные разрешения, называемые привилегиями пользователя. Пользователь root имеет все привилегии, и любое разрешение может быть предоставлено пользователю root или отозвано им. Разрешение для различных типов операций с базой данных, таких как вставка, обновление, удаление, выбор и создание, может быть установлено для пользователя путем предоставления разрешения и удалено путем отзыва разрешения. После предоставления определенных разрешений для пользователя есть два способа сделать изменения эффективными. Один из способов — перезапустить сервер базы данных, а другой — использовать команду сброса привилегий. В этом руководстве показано использование команды сброса привилегий MySQL.

Эффекты использования привилегий Flush

  • Новое разрешение для пользователя будет активировано после выполнения команды FLUSH PRIVILEGES, и пользователь сможет получить доступ к новым привилегиям.
  • Если текущая база данных будет изменена на новую, то все вновь предоставленные разрешения будут затронуты для команды FLUSH PRIVILEGES.
  • Изменения базы данных, связанные с глобальными настройками и паролем пользователя, не затрагиваются командой FLUSH PRIVILEGES.
  • Эффект изменений базы данных не будет виден после выполнения команды FLUSH PRIVILEGES, если база данных кэширована. Вы должны установить текущую базу данных с другой базой данных и снова перейти к предыдущей базе данных.

Синтаксис:

Синтаксис команды сброса привилегий приведен ниже. После выполнения следующей команды таблица разрешений будет перезагружена в память.

FLUSH PRIVILEGES;

Использование привилегий MySQL Flush

Вы должны создать нового пользователя MySQL, чтобы знать, как использовать команду FLUSH PRIVILEGES.

Подключиться к серверу MySQL

Откройте терминал и подключитесь к серверу MySQL, выполнив следующую команду.

$ sudo mysql u root

Создайте нового пользователя

Выполните следующую команду, чтобы создать нового пользователя с именем пользователя » fahmida » и паролем » secret «.

CREATE USER ‘fahmida’@‘localhost’ IDENTIFIED BY ‘secret’;

Когда в MySQL создается новый пользователь, для новых пользователей устанавливаются разрешения по умолчанию. Таблица пользователей базы данных MySQL содержит данные о разрешениях всех пользователей. Выполните следующую команду, чтобы проверить разрешение для вновь созданного пользователя » fahmida «.

SELECT * FROM mysql.user WHERE user=‘fahmida’ \G;

Приведенная выше команда сгенерирует длинный список информации. Некоторая часть вывода показана на следующем изображении. Вывод показывает, что пользователю » fahmida » по умолчанию не предоставлены никакие разрешения.

Читайте также:  Как установить и настроить PostgreSQL на Ubuntu 20.04

Приведенная выше команда сгенерирует длинный список информации

Обновите разрешение пользователя

Конкретное разрешение для любого пользователя может быть предоставлено с помощью запроса UPDATE или с помощью команды GRANT. Если разрешение изменено с помощью запроса UPDATE, то для вступления изменения в силу требуется команда FLUSH PRIVILEGE. Если разрешение изменено с помощью команды GRANT, то не требуется использовать команду FLUSH PRIVILEGE, чтобы изменение вступило в силу.

Выполните следующий запрос UPDATE, чтобы установить разрешение SELECT для пользователя, fahmida, для всех таблиц всех баз данных.

UPDATE mysql.user set Select_priv=‘Y’ WHERE user=‘fahmida’;

Чтобы сделать операцию обновления эффективной, вы должны запустить команду FLUSH PRIVILEGE.

FLUSH PRIVILEGES;

Повторно запустите следующую команду после установки разрешения SELECT для пользователя » fahmida «.

SELECT * FROM mysql.user WHERE user=‘fahmida’ \G;

Выход:

Следующий вывод показывает, что пользователю предоставлена ​​привилегия SELECT.

Следующий вывод показывает, что пользователю предоставлена ​​п

Выполните следующую команду GRANT, чтобы установить разрешения INSERT и DELETE для пользователя fahmida. Вам не нужно использовать команду FLUSH PRIVILEGES для этой команды.

GRANT INSERT, DELETE ON *.* TO fahmida@‘localhost’;

Запустите следующую команду SELECT еще раз после установки разрешений INSERT и DELETE для пользователя fahmida.

SELECT * FROM mysql.user WHERE user=‘fahmida’ \G;

Выход:

Следующий вывод показывает, что пользователю были предоставлены привилегии INSERT и DELETE.

были предоставлены привилегии INSERT и DELETE

Изменить пароль пользователя

В MySQL существует множество команд для изменения пароля пользователя. Операторы SET, ALTER и UPDATE. Команда FLUSH PRIVILEGE потребуется, если пароль будет изменен с помощью запроса UPDATE, а команда FLUSH PRIVILEGE не потребуется, если пароль будет изменен с помощью команд SET или ALTER. Здесь показано использование операторов ALTER и UPDATE.

Выполните следующую команду, чтобы проверить значение значения authentication_string перед изменением пароля.

SELECT authentication_string FROM mysql.user WHERE user=‘fahmida’;

Выход:

Читайте также:  Как скопировать или клонировать всю базу данных MySQL

Следующий вывод показывает значение authentication_string для пароля, ’ secret ’.

показывает значение authentication_string

Выполните следующую команду ALTER, чтобы изменить пароль пользователя » fahmida».

ALTER USER ‘fahmida’@‘localhost’ IDENTIFIED BY ‘secret2’;

Вам не нужно использовать команду FLUSH PRIVILEGES для активации пароля, измененного оператором ALTER. Выполните следующую команду, чтобы проверить значение authentication_string после изменения пароля.

SELECT authentication_string FROM mysql.user WHERE user=‘fahmida’;

Выход:

Следующий вывод показывает новое значение authentication_string после изменения пароля.

новое значение authentication_string после измен

Выполните следующую инструкцию UPDATE, чтобы установить пароль NULL, используя authentication_string для пользователя » fahmida».

UPDATE mysql.user SET authentication_string = NULL WHERE user=‘fahmida’;

Здесь необходимо использовать команду FLUSH PRIVILEGES, чтобы изменение вступило в силу для инструкции UPDATE.

FLUSH PRIVILEGES;

Выполните следующую команду, чтобы проверить значение authentication_string после изменения пароля.

SELECT authentication_string FROM mysql.user WHERE user=‘fahmida’;

Выход:

Следующий вывод показывает новое значение authentication_string после изменения пароля.

ледующий вывод показывает новое значение authentication_string после

Заключение

Использование команды FLUSH PRIVILEGES после предоставления привилегий и изменения пароля для пользователя показано в этом руководстве путем создания новой учетной записи пользователя. Использование команды FLUSH Privilege будет снято после прочтения этого руководства.

Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector