Создать пользователя базы данных MySQL можно из консоли, подключиться требуется с правами root. То же самое можно проделать через веб-интерфейс PHPMYADMIN, но описанный ниже способ универсален.
Прежде всего нужно подключиться к консоли
mysql -h localhost -u root -p
Как создать пользователя базы данных MySQL
Пользователь создается следующим образом MySQL:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Пользователь MySQL создан, однако каких либо прав на работу с базами данных у него нет и авторизоваться на данном этапе он не может.
Предоставляем доступ к базам данных
GRANT ALL PRIVILEGES ON * . * TO 'user'@'localhost';
* . * здесь означает все таблицы всех баз данных.
ALL PRIVILEGES предполагает права на чтение, редактирование, изменение и удаление и т.п. таблиц и баз.
Привилегии пользователя сервера баз данных
Полный список возможных опций:
- ALL PRIVILEGES — полный доступ к заданной таблице/базе данных или всем таблицам/базам.
- CREATE — право создавать новые таблицы/базы данных.
- DROP — право удалять таблицы/базы данных.
- SELECT — право выполнять чтение из таблиц/баз данных
- UPDATE — право редактировать строки таблиц
- DELETE — право удалять строки из таблиц
- INSERT — право добавлять строки в таблицу
- GRANT OPTION — право назначать или удалять права доступа для других пользователей
Чтобы изменения вступили в силу необходимо выполнить:
FLUSH PRIVILEGES;
Команду нужно выполнять каждый раз при редактировании реквизитов пользователей и прав доступа
Права можно также забрать используя REVOKE
Например:
REVOKE UPDATE ON *.* FROM ‘user’@‘localhost’;
Протестировать доступ от имени созданного пользователя можно выйдя из консоли MySQL
quit
и подключившись к ней и реквизитами добавленного пользователя, в примере это user
mysql -u user -p
Пользователя можно удалить тем же образом, что и базу данных
DROP USER 'user'@'localhost’;
Обновить пароль пользователя сервера баз данных
UPDATE mysql.user SET Password=PASSWORD('password123') WHERE USER='user' AND Host='localhost';
Вывести в консоль всех существующих пользователей и их пароли с привязкой к хосту
SELECT host, user, password FROM mysql.user;