mysql. Назначить права доступа

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.

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

В MySql существует несколько типов прав доступа:
  • CREATE – Позволяет пользователю создавать базы данных/таблицы
  • SELECT – Позволяет пользователю делать выборку данных
  • INSERT – Позволяет пользователю добавлять новые записи в таблицы
  • UPDATE – Позволяет пользователю изменять существующие записи в таблицах
  • DELETE – Позволяет пользователю удалять записи из таблиц
  • DROP – Позволяет пользователю удалять записи в базе данных/таблицах

Назначить права пользователю можно с помощью запроса выполняемому по данной схеме:
GRANT [тип прав] ON [имя базы данных].[имя таблицы] TO ‘[имя пользователя]’@'localhost’;

К примеру представим, что нам необходимо для пользователя new-user предоставить права доступа на запись и чтение в базу данных mydb на таблицу posts:
По выше указанной схеме, после слова GRAND указываем типы прав INSERT и SELECT.
Далее после ON указываем название базы данных и после `.` указываем название таблицы. Соответственно после слова TO в кавычках указываем имя пользователя(В примере это new-user).
GRANT INSERT, SELECT ON mydb . posts TO 'new-user'@'localhost';

Если необходимо установить права доступа на всю базу данных и на все таблицы данной базы запрос изменится следующим образом:
GRANT INSERT, SELECT ON *.* TO 'new-user'@'localhost';

Если вы вдруг ошиблись с выдачей прав пользователю или просто хотите убрать у пользователя все права, то выполняем следующую команду:
REVOKE ALL PRIVILEGES ON *.* FROM 'new-user'@'localhost';

Схема в данной команде будет выглядеть по аналогичным правилам:
REVOKE ALL PRIVILEGES ON [имя базы данных].[имя таблицы] FROM '[имя пользователя]'@'localhost';

Для применения всех назначенных, измененных или удаленных прав доступа, необходимо выполнить команду:
FLUSH PRIVILEGES;

На этом все! Теперь можно указывать любые права доступа для любого пользователя в вашей базе данных.
Хочу напомнить, что для назначения прав доступа требуется аккаунт с root доступом.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.