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

Обратите внимание! Для работы с MySQL на сервере должен быть установлен LEMP или LAMP. Если они не установлены, вам помогут инструкции:  

После установки MySQL/MariaDB автоматически создаётся пользователь MySQL root. Работать с базой данных под root можно, но небезопасно, поэтому необходимо создать нового пользователя и дать ему определённые права. Управлять пользователями можно двумя способами:

  • через phpMyAdmin,
  • через консоль.

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

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

   1. Чтобы добавить нового пользователя, установите приложение phpMyAdmin. Войдите в phpMyAdmin под root-логином и root-паролем сервера.

   2. Перейдите на вкладку «Учетные записи пользователей». Кликните по строке Добавить учетную запись пользователя: 

   3. Укажите имя пользователя, хост и пароль. Подтвердите пароль. Вы можете придумать свой пароль или сгенерировать новый:

 

   4. Выберите привилегии для пользователя. Для этого поставьте галочки напротив нужных типов возможностей. Чтобы подробнее узнать о каждой привилегии, наведите на неё курсор. Появится подсказка с дополнительной информацией.

Если вы хотите дать новому пользователю доступ только к конкретным базам данных, на этом этапе никаких привилегий назначать не нужно.

Если вы хотите предоставить новому пользователю неограниченный доступ, кликните Отметить все:

Чтобы закончить настройку прав, внизу страницы нажмите кнопку Вперёд.
Готово, учётная запись добавлена:

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

   1. Подключитесь к VPS-серверу по SSH

   2. Запустите сервер базы данных с помощью команды: 

mysql

   3. Создайте пользователя. Для этого используйте команды:

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

Где: 

  • user-name ― логин пользователя базы данных,
  • password ― пароль нового пользователя.

   4. Вы создали нового пользователя, но на данный момент у него нет никаких прав, и он не может войти в систему MySQL. Чтобы предоставить новому пользователю неограниченные права, введите команду:

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

Где user-name ― логин, который вы указали на шаге 3.

   5. Чтобы сохранить изменения, введите команду:

FLUSH PRIVILEGES;

Готово, теперь вы можете заходить под новым пользователем, у которого неограниченные права, как и у root.

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

Если вы хотите, чтобы MySQL-пользователь имел доступ к конкретным базам данных, нужно настроить права доступа.
Настроить права можно также через phpMyAdmin или консоль.

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

   1. Откройте phpMyAdmin. 

   2. Перейдите на вкладку Учетные записи пользователей

   4. Выберите нужную учетную запись и нажмите Редактировать привилегии: 

   5. Перейдите на вкладку База данных. Выберите из списка базу данных, к которой хотите дать доступ пользователю, и нажмите Вперёд:

 

   6. Поставьте галочки напротив нужных типов привилегий. Чтобы подробнее узнать о каждой привилегии, наведите на неё курсор. Появится подсказка с дополнительной информацией. Если вы хотите предоставить новому пользователю неограниченный доступ, кликните Отметить все. Нажмите Вперёд

                           

MySQL grant permissions

Готово, вы настроили привилегии для пользователя.

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

Обратите внимание! После любого изменения прав доступа обязательно выполняйте команду FLUSH PRIVILEGES, чтобы применить все настройки. 

Для выполнения каждой из команд нужно иметь права доступа root.

При создании нового пользователя мы показали, как дать пользователю неограниченные права. Если вам нужно предоставить пользователю другой уровень доступа к базам данных, выполните команду:

GRANT [тип прав] ON [имя базы данных].[имя таблицы] TO ‘user-name’@'localhost’;

Где:

  • имя базы данных  ― укажите имя базы данных, к которой нужно дать доступ,
  • имя таблицы ― укажите имена таблиц, к которым хотите дать доступ или укажите .*, чтобы дать права на все таблицы в конкретной базе данных,
  • user-name ― логин, который был указан при создании пользователя,
  • тип прав — тот тип, который вы хотите предоставить пользователю.

MySQL права доступа бывают:

  • ALL PRIVILEGES – полный доступ к указанной базе данных (если база данных не указана, то ко всем),
  • CREATE – позволяет создавать базы данных/таблицы,
  • SELECT – позволяет делать выборку данных,
  • INSERT – позволяет добавлять новые записи в таблицы,
  • UPDATE – позволяет изменять существующие записи в таблицах,
  • DELETE – позволяет удалять записи из таблиц,
  • DROP – позволяет удалять записи в базе данных/таблицах.


Если вы хотите назначить несколько видов прав доступа, разделите их запятыми, например:

GRANT CREATE, SELECT ON *.* TO ‘user-name’@'localhost’;

Чтобы забрать у пользователя права доступа, введите команду:

REVOKE [тип прав] ON [имя базы данных].[имя таблицы] FROM ‘user-name’@'localhost’;

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

REVOKE ALL PRIVILEGES ON *.* FROM ‘user-name’@'localhost’;

Обратите внимание! При отмене разрешений обязательно в команде используйте FROM, а не TO.

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

SHOW GRANTS username;

Чтобы удалить пользователя, введите команду:

DROP USER ‘user-name’@'localhost’;

 

Если вы не нашли ответ, спросите у нас!
Написать в поддержку