Как создать нового пользователя MySQL?
22.05.2018
Теги: MySQL • Web-разработка • БазаДанных • Настройка • Пользователь • ПраваДоступа
Учетные записи в СУБД MySQL представлены в виде связки user@host
. Если пользователь не является root
, то давать ему все права нецелесообразно, поэтому заодно посмотрим, как можно назначать права доступа для пользователей. Начнем с создания нового пользователя из консоли MySQL:
> mysql -uroot -pqwerty
> CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'password';
На данном этапе новый пользователь dbuser
не имеет прав делать что-либо с базами данных. На самом деле, даже если если пользователь dbuser
попробует залогиниться (с паролем password
), он не попадет в консоль MySQL.
Давайте предоставим пользователю доступ к информации, которая ему потребуется:
> GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'localhost';
Эта команда позволяет пользователю читать, редактировать, выполнять любые действия над всеми таблицами базы данных dbname
. Чтобы изменения вступили в силу, выполняем команду:
> FLUSH PRIVILEGES;
Общий синтаксис команды GRANT
имеет вид:
GRANT [Привилегии] ON [БазаДанных.Таблица] TO [Пользователь] [WITH GRANT OPTION];
Если нужно дать доступ к любой базе данных или к любой таблице, можно использовать звездочку *
вместо названия базы данных или таблицы. Например, эта команда предоставляет все права доступа пользователю dbuser
и, если его не существует, создает его:
> GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
WITH GRANT OPTION
дает возможность назначать другим пользователям любые привилегии, которые есть у самого пользователя.
Список прав доступа, которые могут получить пользователи:
ALL PRIVILEGES
— полный доступ к заданной базе данныхCREATE
— позволяет создавать новые таблицы или базы данныхDROP
— позволяет удалять таблицы или базы данныхDELETE
— позволяет удалять строки из таблицINSERT
— позволяет добавлять строки в таблицуSELECT
— позволяет делать выборку из таблицUPDATE
— позволит редактировать строки таблиц
Каждый раз после изменения прав доступа надо использовать команду FLUSH PRIVILEGES
.
Лишение прав доступа практически идентично их назначению:
REVOKE [Привилегии] ON [БазаДанных.Таблица] FROM [Пользователь];
Отменим привилегию GRANT OPTION
у пользователя dbuser
:
> REVOKE GRANT OPTION ON *.* FROM 'dbuser'@'localhost';
Для удаления пользователя используется команда
DROP USER [Пользователь];
Удалим пользователя dbuser
:
> DROP USER 'dbuser'@'localhost';
Выходим из консоли MySQL:
> quit
- Блог на Laravel 7, часть 11. Панель управления — назначение ролей и прав для пользователей
- Мини-блог на Laravel, часть 9. Защита маршрутов создания, редактирования и удаления
- MySQL. Утилита mysql_config_editor
- Блог на Laravel 7, часть 17. Временная зона для пользователей, деплой на хостинг TimeWeb
- Блог на Laravel 7, часть 16. Роль нового пользователя, сообщение админу о новом посте
- Блог на Laravel 7, часть 15. Восстановление постов, slug для категории, поста и страницы
- Блог на Laravel 7, часть 10. Личный кабинет — CRUD-операции над постами и комментариями
Поиск: MySQL • Web-разработка • База данных • Права доступа • Пользователь • Настройка • Пароль