Чтобы начать работу в MySQL, установите LEMP или LAMP по соответствующей инструкции в разделе: Установка программного обеспечения.
После установки MySQL/MariaDB автоматически будет создан MySQL пользователь root. Работать с базой данных под root небезопасно, поэтому необходимо создать нового пользователя, а затем назначить ему специальные права доступа. Сделать это можно через консоль или через phpMyAdmin.
Как создать нового пользователя в MySQL
Чтобы добавить нового пользователя, установите приложение phpMyAdmin. Как установить phpMyAdmin, описано в инструкции. После установки проверьте, что ваш сервер включен. Для входа в phpMyAdmin используйте root-логин и root-пароль сервера.
-
1
Откройте приложение и перейдите на вкладку Учетные записи пользователей. Кликните по строке Добавить учетную запись пользователя:
-
2
На открывшейся странице укажите имя пользователя, хост и пароль. Подтвердите пароль. Также вы можете сгенерировать пароль, нажав на кнопку Генерировать.
-
3
Выберите привилегии для нового пользователя. Для этого поставьте галочки напротив нужных типов привилегий. Чтобы подробнее узнать о каждой привилегии, наведите на неё курсор и прочитайте справочную информацию.
- Если вы хотите дать новому пользователю доступ только к конкретным базам данных, на этом этапе можно не назначать никаких привилегий.
- Если вы хотите выбрать все привилегии и предоставить новому пользователю неограниченный доступ, кликните Отметить все.
Нажмите кнопку Вперёд внизу страницы:
Готово, вы добавили учётную запись:
Если вы хотите, чтобы пользователь имел доступ к конкретным базам данных, вам потребуется настройка прав доступа.
Прежде чем создать нового пользователя через консоль, подключитесь к VPS-серверу по SSH. После этого:
-
1
Запустите сервер базы данных с помощью команды:
mysql
-
2
Создайте пользователя с помощью команды:
CREATE USER 'user-name'@'localhost' IDENTIFIED BY 'password';
Замените значения внутри кавычек:
- вместо user-name укажите логин пользователя базы данных;
- вместо password укажите пароль нового пользователя.
-
3
На этом этапе новый пользователь не имеет никаких разрешений на работу с базами данных. Он не может войти в систему и добраться до оболочки MySQL, поэтому нужно предоставить ему неограниченные права доступа.
Для этого введите команду:
GRANT ALL PRIVILEGES ON * . * TO 'user-name'@'localhost';
Не забудьте изменить user-name на логин, который был указан при создании пользователя.
-
4
Чтобы изменения вступили в силу, введите команду:
FLUSH PRIVILEGES;
Готово, наш новый пользователь получил те же права доступа в базе данных, что и пользователь MySQL root.
Как настроить права доступа для пользователя в MySQL
-
1
Откройте phpMyAdmin и перейдите на вкладку Учетные записи пользователей. Выберите нужную учетную запись и нажмите Редактировать привилегии:
-
2
На открывшейся странице перейдите на вкладку База данных. Выберите из списка базу данных, к которой хотите дать доступ пользователю, и нажмите Вперёд:
-
3
Выберите привилегии. Для этого поставьте галочки напротив нужных типов привилегий. Чтобы подробнее узнать о каждой привилегии, наведите на неё курсор и прочитайте справочную информацию. Если вы хотите выбрать все привилегии и предоставить новому пользователю неограниченный доступ, кликните Отметить все.
Затем нажмите Вперёд:
Готово, вы настроили привилегии для пользователя.
Важно: обязательно выполняйте команду FLUSH PRIVILEGES после любого изменения в правах доступа. Для выполнения каждой из команд нужно иметь права доступа root.
В примере выше мы создали нового пользователя с неограниченными правами доступа. Если вам нужно предоставить другой уровень доступа к базам данных для пользователя, выполните команду:
GRANT [тип прав] ON [имя базы данных].[имя таблицы] TO ‘user-name’@'localhost’;
Замените значения внутри кавычек:
- вместо имя базы данных укажите нужную базу данных;
- вместо имя таблицы укажите имена таблиц, к которым хотите дать доступ или укажите .*, чтобы дать права на конкретную базу и все таблицы;
- вместо тип прав — тот тип, который вы хотите предоставить пользователю.
В MySQL права доступа бывают нескольких типов:
- ALL PRIVILEGES – даёт пользователю MySQL полный доступ к заданной базе данных (если база данных не указана, то ко всем);
- CREATE – позволяет пользователю создавать базы данных/таблицы;
- SELECT – позволяет пользователю делать выборку данных;
- INSERT – позволяет пользователю добавлять новые записи в таблицы;
- UPDATE – позволяет пользователю изменять существующие записи в таблицах;
- DELETE – позволяет пользователю удалять записи из таблиц;
- DROP – позволяет пользователю удалять записи в базе данных/таблицах.
Не забудьте изменить user-name на логин, который был указан при создании пользователя.
- Если вы хотите назначить несколько видов прав доступа, разделите их запятыми, как в команде:
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’;
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊