Главная страница » Linux » Как добавить нового пользователя в MySQL и назначить права доступа

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

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

Рассмотрим как можно создать пользователя и предоставим ему необходимый список полномочий доступа к БД. Все ниже описанное настраивается на микрокомпьютере Raspberry Pi под операционной системой Raspbian (debian). В системах под управлением Linux, различных модификаций, обычно, все настройки соответствуют этой статьи.

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

В командной строке (в терминале) вводим команду:

sudo mysql

Далее вводим следующую команду:

CREATE USER 'non-root'@'localhost' IDENTIFIED BY '123';

Имя пользователя и пароль необходимо указать свои. «non-root» — пользователь, «123» — пароль. После ввода команды, пользователь будет создан.


Назначение прав доступа

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

GRANT ALL PRIVILEGES ON * . * TO 'non-root'@'localhost';

Для того, что бы изменения вступили в силу, вводим следующую команду:

FLUSH PRIVILEGES;

Вот и все. Мы создали нового пользователя и предоставили ему те же права доступа к базам данных, которые есть и у пользователя root.

Предоставляем права доступа в базам данных

Как я и говорил выше, не всегда целесообразно предоставлять пользователю полные привилегии доступа.

В команде необходимо подставить свои правила:

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

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

  • CREATE – Позволяет пользователям создавать базы данных/таблицы
  • SELECT – Позволяет пользователям делать выборку данных
  • INSERT – Позволяет пользователям добавлять новые записи в таблицы
  • UPDATE – Позволяет пользователям изменять существующие записи в таблицах
  • DELETE – Позволяет пользователям удалять записи из таблиц
  • DROP – Позволяет пользователям удалять записи в базе данных/таблицах
  • GRANT OPTION — позволит назначать или удалять права доступа для других пользователей.

Для использования любой из этих опций, просто замени [тип прав] необходимым словом. Чтобы назначить несколько видов прав доступа, раздели их запятыми как в следующей команде. Например, мы можем назначить такие привилегии как CREATE и SELECT для нашего user1 пользователя MySQL такой командой:

GRANT CREATE, SELECT ON * . * TO 'user1'@'localhost';

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

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

Например, чтобы отменить все привилегии у пользователя user1 нужно сделать:

REVOKE ALL PRIVILEGES ON *.* FROM 'user1'@'localhost';

В заключение, ты можешь удалить существующего пользователя, используя команду:

DROP USER ‘user1’@‘localhost’;

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

Метки:

3 комментария для “Как добавить нового пользователя в MySQL и назначить права доступа”

  1. It’s hard to come by educated people about this subject, however, you sound like you know what you’re talking about! Thanks

  2. Everyone loves it whenever people get together and share ideas. Great site, keep it up!

Обсуждение закрыто.