И так приступим. Для начала необходимо открыть терминал и вызвать mysql c правами root:
sudo mysql
После чего вы увидите примерно следующий результат:
Создание нового пользователя MySQL
Создаем пользователя myuser c паролем mypassword
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
Задать пользователю неограниченные права доступа в MySQL
Важно, крайне нежелательно создавать пользователя с неограниченными правами на боевом сервере.
Далее зададим пользователю неограниченные права
GRANT ALL PRIVILEGES ON * . * TO 'myuser'@'localhost';
Для того что бы изменения вступили в силу выполним команду
FLUSH PRIVILEGES;
Теперь пользователь myuser получил все права доступа к базе данных как у root.
Назначение специальных прав доступа для пользователя MySQL
GRANT [тип_доступа] ON [имя_базы_данных].[имя_таблицы] TO 'user_name'@'localhost';
Наиболее распространенные права доступа:
CREATE | Разрешает пользователям создавать базы данных/таблицы |
SELECT | Разрешает делать выборку данных |
INSERT | Разрешает добавлять новые записи в таблицы |
UPDATE | Разрешает изменять существующие записи в таблицах |
DELETE | Разрешает удалять записи из таблиц |
DROP | Разрешает удалять записи в базе данных/таблицах |
Для примера разрешим пользователю myuser создавать таблицы и делать выборку из таблиц для базы данных mydb
GRANT CREATE, SELECT ON mydb.* TO 'myuser'@'localhost';
Отмена привилегий для пользователя MySQL
Что бы отменить привилегии пользователя выполните:
REVOKE [тип_доступа] ON [имя_базы_данных].[имя_таблицы] FROM 'user_name'@'localhost';
Для примера отзовем у пользователя myuser право создавать таблицы для базы данных mydb:
REVOKE CREATE ON mydb.* FROM 'myuser'@'localhost';
Отзываем все права доступа (если у него не root полномочия):
REVOKE ALL PRIVILEGES ON *.* FROM 'user_name'@'localhost';
Удалить пользователя MySQL
DROP USER 'user_name'@'localhost';
Вывод списка привилегий пользователя MySQL
Чтобы получить список разрешений для пользователя, необходимо выполнить следующую команду:
SHOW GRANTS FOR 'user_name'@'localhost';
Пример ответа:
После всех изменений в MySQL желательно вызывать команду:
FLUSH PRIVILEGES;
Комментарии
Комментарии отсутствуют, Вы можете быть первым