После того, как вы установили и настроили MySQL, вам необходимо создать базы данных, таблицы и пользователей. Конечно, вы можете сделать это от имени суперпользователя root, но это не безопасно. Да и большинство приложений не позволят вам такой вольности, например, Phpmyadmin не даст авториrзоваться от имени суперпользователя.
Поэтому для каждой базы данных нужно создавать отдельных пользователей и настраивать для них права. В этой статье мы рассмотрим, как выполняется создание пользователя mysql, а также настройка его прав.
Содержание статьи
Создание пользователя mysql
1. Как создать пользователя MySQL
Предположим, что база данных уже создана и называется test_database. Нам нужно открыть клиент базы данных. Для этого наберите в терминале:
mysql -u root -p
Теперь можно работать. Для создания пользователя используется команда CREATE USER, её синтаксис такой:
CREATE USER 'имя_пользователя'@'хост' IDENTIFIED BY 'пароль';
Кроме имени пользователя, здесь нужно задать хост, с которого может авторизоваться этот пользователь. Здесь может быть доменное имя, IP-адрес, адрес подсети или знак "%", который означает все возможные хосты. Это очень удобно, потому что вы можете создать пользователя, к которому можно будет подключится только локально или настроить отдельно права для локального или удалённого пользователя.
Например, давайте создадим локального пользователя test_user с паролем password:
Или можно создать пользователя, который будет доступен со всех хостов:
Смотрим наших пользователей:
Все пользователи созданы.
2. Права пользователя MySQL
Создать пользователя - это ещё далеко не всё, теперь нужно назначить ему права. Для этого используется команда GRANT. У неё такой синтаксис:
GRANT привилегии ON база_данных . таблица TO 'имя_пользователя'@'хост';
Здесь можем дать определённые привилегии для опредёленного пользователя к базе данных или таблице. Если нужно дать права для всех баз данных или таблиц, используйте вместо названия звездочку - "*". Вот основные права пользователя MySQL, которые вы можете использовать:
- ALL PRIVILEGES - все, кроме GRANT;
- USAGE PRIVILEGES - никаких привилегий;
- SELECT - делать выборки из таблиц;
- INSERT - вставлять данные в таблицу;
- UPDATE - обновлять данные в таблице;
- DELETE - удалять данные из таблицы;
- FILE - разрешает читать файлы на сервере;
- CREATE - создавать таблицы или базы данных;
- ALTER - изменять структуру таблиц;
- INDEX - создавать индексы для таблиц;
- DROP - удалять таблицы;
- EVENT - обработка событий;
- TRIGGER - создание триггеров.
Также доступны такие привилегии администрирования баз данных:
- GRANT - изменять права пользователей;
- SUPER - суперпользователь;
- PROCESS - получение информации о состоянии MySQL;
- RELOAD - позволяет перезагружать таблицы привилегий;
- SHUTDOWN - позволяет отключать или перезапускать базу данных;
- SHOW DATABASES - просмотр списка баз данных;
- LOCK TABLES - блокирование таблиц при использовании SELECT;
- REFERENCES - создание внешних ключей для связывания таблиц;
- CREATE USER - создание пользователей;
Чтобы дать права пользователю MySQL на обновление и добавление записей для базы данных test_database, выполните:
Дальше дадим этому же пользователю все права над этой базой данных:
Теперь посмотрим привилегии нашего пользователя:
Мы видим, что для всех баз данных и таблиц привелегий нет, но зато есть все привилегии для базы данных test_database. Вот так это работает. После обновления прав пользователя необходимо обновить таблицу прав пользователей MySQL в памяти. Для этого выполните:
3. Удаление прав пользователя MySQL
Чтобы отозвать права у пользователя MySQL, используйте команду REVOKE вместо GRANT. Её синтаксис похож на GRANT:
REVOKE привилегии ON база_данных . таблица FROM 'имя_пользователя'@'хост';
Например, заберём все права на базу данных test_database у нашего пользователя:
4. Создание суперпользователя MySQL
Если вам необходимо создать пользователя со всеми правами MySQL на замену для root, то можно использовать такую конструкцию:
Даём все привилегии для пользователя test_user над всеми базами данными и всеми таблицами. Но наш пользователь не сможет давать права другим пользователям. Чтобы это исправить, нужно дать ему привилегию GRANT, а для этого используется такая команда:
Теперь этот пользователь является суперпользователем для MySQL и, авторизовавшись от его имени в PhpMyAdmin, вы можете делать всё то же самое, что и с помощью root.
Выводы
В этой статье мы рассмотрели, как создать пользователя MySQL в Ubuntu или в любом другом дистрибутиве. Работа в командной строке с MySQL может показаться довольно сложной. Но сделать это надо всего один раз -после установки базы данных. А дальше можно выполнять все действия в Phpmyadmin.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали












Друзья, у вас опечатка https://prnt.sc/v8w2xv
mysql> GRANT ALL PRIVILEGES ON * . * TO 'dbuser'@'localhost' WITH GRANT OPTION;
ERROR 1410 (42000): You are not allowed to create a user with GRANT
статью обновить пора.
Все получилось. Спасибо
"Для этого используется команда GRAT" - неверно.
"Для этого используется команда GRANT" - верно.
ничего обновлять ненадо. У вас черным по белому написано, что пользователь от которого вы выполянете запрос для создания суперпользователя НЕ ИМЕЕТ НА ЭТО РАЗРЕШЕНИЙ, т.е. нет прав на создание пользователя с такими правами.
А делать то что? Как дальше то работать, как суперпользователя делать?
Привет. Создал сервак с мускулом, php, phpmyadmin Во время установки создался пользователь phpmyadmin. Это произошло в псефдографике в терминале. Теперь есть только один пользователь без привелегий. Как поступить для создания суперпользователя? В терминальном сеансе из под sudo su при создании суперпользователя этой коммандой GRANT ALL PRIVILEGES ON * . * TO 'test_user'@'localhost'; выдаёт ошибку
ERROR 1410 (42000): You are not allowed to create a user with GRANT
Как и что делать?
Привет коллеги. Что хочется сказать. Промудохался с мускулом. Ничего не получилось. Получал кучу варнингов и установка юзера просто задолбала. Потом плюнул и просто поставил с первого тычка maria db. Что там разработчики мускула накосячили, не могу понять.
спасибо