В этом руководстве вы узнаете, как создать нового пользователя в MySQL и сделать его суперпользователем с доступом к базам данных по типу root.
Краткий пример
1 2 3 | CREATE USER 'root'@'{IP}' IDENTIFIED BY '{PASSWORD}'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'{IP}' WITH GRANT OPTION; FLUSH PRIVILEGES; |
Где
- {PASSWORD} - Пароль для подключения к серверу
- {IP} - IP адрес сервера, с которого будет осуществляться подключение
Создание пользователя
Сначала вам нужно войти в систему под пользователем root, который имеет привилегию CREATE USER.
Выполните эту команду, чтобы создать нового пользователя с паролем:
1 | CREATE USER 'username'@'localhost' IDENTIFIED BY 'the_password'; |
На данный момент новый пользователь не имеет прав на базы данных. Следующее, что нужно сделать, - это предоставить привилегии новому пользователю. Существует несколько привилегий, которыми может обладать пользователь:
- ALL PRIVILEGES - полный корневой доступ к базам данных. Если база данных не указана, он имеет глобальный доступ ко всей системе.
- CREATE - создание новых таблиц или баз данных
- DROP - удаление таблиц или баз данных
- DELETE - удалить строки из таблиц
- INSERT - вставка строк в таблицы
- SELECT - использовать команду SELECT для чтения баз данных.
- UPDATE - обновление строк таблицы
- GRANT OPTION - предоставлять или удалять привилегии других пользователей
Сделайте пользователя - суперпользователем
Чтобы сделать этого нового пользователя суперпользователем, мы должны предоставить ему полный корневой доступ ко всему в базе данных, а это значит, что нужно предоставить ему ВСЕ ПРИВИЛЕГИИ:
1 | GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'localhost' WITH GRANT OPTION; |
Все готово, новый пользователь теперь имеет права типа root.
Создание дополнительного пользователя
Затем создайте еще одну учетную запись для того же нового имени пользователя
1 | CREATE USER 'username'@'%' IDENTIFIED BY 'the_password'; |
И предоставьте полный root-доступ:
1 | GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION; |
И 'username'@'localhost', и 'username'@'%' - это учетные записи суперпользователей с полными правами на все действия.
Учетная запись 'username'@'localhost' может использоваться только при подключении с локального хоста. Учетная запись 'username'@'%' использует подстановочный знак '%' для части хоста, поэтому ее можно использовать для подключения с любого хоста.
Проверка привелегий
Чтобы проверить привилегии, предоставленные новому пользователю, выполните команду SHOW GRANTS:
1 | SHOW GRANTS FOR username; |
Перезагрузка привилегий
Наконец, когда все будет готово, перезагрузите все привилегии:
1 | FLUSH PRIVILEGES; |
И все изменения немедленно вступят в силу.