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

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

MySQL — одна из самых популярных систем управления базами данных. В этом руководстве мы рассмотрим шаги, необходимые для создания нового пользователя MySQL и предоставления ему прав.

Все операции будут выполняться в терминале MySQL с пользователем root:

mysql -p -u root

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

Мы можем создать нового пользователя MySQL с помощью следующей команды:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

где:

  • user — имя пользователя MySQL, который будет создан
  • password — пароль, который мы хотим назначить этому пользователю

Все команды MySQL содержат точку с запятой (;).

Предоставить разрешения для пользователя

Следующее, что нам нужно сделать, это предоставить привилегии этому пользователю, чтобы иметь возможность доступа к клиенту MySQL и работать с соответствующей базой данных / базами данных:

GRANT ALL PRIVILEGES ON database.table TO 'user'@'localhost';

где:

  • database  — имя базы данных MySQL, к которой мы предоставляем доступ
  • table — имя таблицы базы данных, к которой мы предоставляем доступ

Нам разрешено использовать подстановочный знак звездочки (*), когда мы хотим предоставить доступ ко всем базам данных / таблицам:

GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost';

или же

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost';

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

Вот список привилегий MySQL, которые наиболее часто используются:

  • ALL PRIVILEGES — предоставляет все привилегии пользователю MySQL
  • CREATE — позволяет пользователю создавать базы данных и таблицы
  • DROP — позволяет пользователю удалять базы данных и таблицы
  • DELETE — позволяет пользователю удалять строки из определенной таблицы MySQL
  • INSERT — позволяет пользователю вставлять строки в конкретную таблицу MySQL
  • SELECT — позволяет пользователю читать базу данных
  • UPDATE  — позволяет пользователю обновлять строки таблицы

Вот пример синтаксиса, где пользователю предоставляются только две привилегии:

GRANT SELECT, INSERT, DELETE ON database.* TO 'user'@'localhost';

Чтобы изменения вступили в силу и привилегии были сохранены, в конце должна быть выполнена следующая команда:

FLUSH PRIVILEGES;

Удалить существующего пользователя MySQL

Пользователь MySQL может быть удален с помощью следующей команды:

DROP USER 'user'@'localhost';
Поделиться: