В этой статье мы расскажем, как создать новые права доступа пользователей и привилегии для этого пользователя в MySQL. MySQL является реляционной базой данных с открытым исходным кодом, управляемая системой (СУБД), которая позволяет пользователям и приложениям сохранять, организовывать, и получить свои данные. Она имеет систему контроля доступа, которая состоит из разрешений, которые пользователи могут иметь в таблицах и базах данных, мы посмотрим на некоторые из вариантов этой системы контроля доступа описанные позже в этом руководстве.
Чтобы войти в нашу систему MySQL, мы используем следующую команду:
# mysql -u root -p
При выполнении этой команды мы говорим клиенту MySQL, что мы входим в с суперпользователем и указываем пароль пользователя.
Если вы не установили MySQL на сервере, вы можете проверить статью о том, как установить MySQL на Ubuntu 16.04.
Теперь, когда мы находимся внутри нашего сервера MySQL мы можем поручить MySQL, чтобы создать нового пользователя с помощью следующего запроса:
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
Совет: всегда используйте надежный пароль для всех учетных записей. Который Вы можете сгенерировать из командной строки.
Еще одна интересная вещь, об этой команде является то, что имя хоста нового пользователя, которого мы только что создали может быть другое имя хоста или IP – адрес, если мы хотим, чтобы пользователь вошел в систему удаленно.
В качестве примера:
CREATE USER 'new_user'@'10.20.30.111' IDENTIFIED BY 'password';
Допустим, мы хотим предоставить нашему новому пользователю права доступа, так что они могут считывать данные из всех баз данных на нашем сервере MySQL. Мы делаем это, введя следующую команду:
GRANT SELECT ON *.* TO 'new_user'@'localhost';
При выполнении запроса выше мы поручаем MySQL, дать нашему новому пользователю разрешения использовать команду SELECT, для чтения из базы данных на нашем сервере MySQL, мы использовали ключевое слово SELECT, для того, чтобы сделать это. GRANT SELECT, сообщает MySQL, что пользователь не будет иметь ничего, кроме разрешений на чтение данных из данной базы данных или баз данных. Предоставление разрешений, как правило, осуществляется в следующем формате:
GRANT <permission type> ON <database>.<table> TO '<username>'@'<host>';
Мы также можем поручить MySQL, забрать определенное разрешение от пользователя в том же формате, что и выше, только заменив ключевое слово GRANT на REVOKE и ключевое слово TO на FROM:
REVOKE <permission type> ON <database>.<table> FROM '<username>'@'<host>';
Для того, чтобы наши новые установленные разрешения вступили в силу, нам нужно перезагрузить все привилегии:
FLUSH PRIVILEGES;
В предыдущем разделе мы видели, как предоставить разрешения на чтение для пользователя с помощью ключевого слова SELECT. В этом разделе мы рассмотрим другие ключевые слова, которые позволят устанавливать различные типы разрешений на пользователе.
Удаление пользователей осуществляется таким же образом, как и с базами данных или таблицами с помощью команды DROP:
DROP USER 'new_user'@'localhost';
Наконец, мы можем протестировать нашего нового пользователя, введите следующую команду для завершения текущего активного сеанса:
exit;
А потом мы снова войдем в систему, введя следующую команду в командной строке:
mysql -u new_user -p
Вот, теперь вы создали своего собственного пользователя в MySQL и дали ему соответствующие разрешения.