Создать пользователя в Mysql
Многие предпочитают работать с MySQL через различные клиенты, такие как phpmyadmin, Table Plus или другие подобные программы. Через них работать с сервером Mysql нагляднее и проще.
Но через консоль некоторые действия сделать быстрее. Давайте добавим нового пользователя в Mysql и дадим ему права.
Все что написано ниже подходит как для Mysql так и для его ответвлений PerconaDB и MariaDB.
Подключаемся к серверу через SSH . Если сервер Mysql установлен в Winodws, то открываем консоль cmd.exe .
Подключаемся к сервису mysql:
sudo mysql -u root -p Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 493761 Server version: 10.5.12-MariaDB-0+deb11u1-log Debian 11 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Если вы подключаетесь к современной версии Mysql, то в большинстве случаев пароль вводить не потребуется, так как у линуксовой учетной записи root, есть полный доступ.
Добавить пользователя
CREATE USER username@localhost IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.004 sec)
- username — имя нового пользователя;
- localhost — это точка входа. При таком значении подключаться можно будет только с сервера. Можно указать IP-адрес, если Вы будете подключаться только с локальной сети — 192.168.0.* Для того, чтобы снять все ограничения, задаем — *;
- password — это пароль.
Старайтесь использовать только английские буквы, цифры или спец.символы.
Далее имя пользователя будет писаться не просто username, а username@localhost. Это в приведенном выше примере так.
Новый пользователь пока не обладает никакими правами и не может подключиться к БД, прочитать или внести какие-то изменения.
Показать всех пользователей
SELECT user,host,plugin FROM mysql.user; +-------------+-----------+-----------------------+ | User | Host | plugin | +-------------+-----------+-----------------------+ | mariadb.sys | localhost | mysql_native_password | | root | localhost | mysql_native_password | | mysql | localhost | mysql_native_password | | site2life | localhost | mysql_native_password | | user | localhost | mysql_native_password | | username | localhost | mysql_native_password | +-------------+-----------+-----------------------+ 6 rows in set (0.001 sec)
Удалить пользователя
Удалить пользователя можно командой:
DROP USER username@localhost; Query OK, 0 rows affected (0.007 sec)
Дать права доступа
Права доступа можно указать как для отдельной базы данных, так и для всех баз размещенных на сервере.
Вот список самых важных привилегий, которыми можно наделить пользователя:
- ALL PRIVILEGES – все права, кроме изменения права доступа другим пользователям или себе (кака дать все права ниже);
- SELECT – получать строки из таблиц;
- INSERT – вставлять строки в таблицы;
- UPDATE – обновлять данные в строках таблиц;
- DELETE – удалять строки в таблицах;
- CREATE – создавать таблицы и базы данных;
- ALTER – изменять структуру таблиц (добавлять или удалять столбцы);
- INDEX – создавать индексы в таблицах (необходимо для разработчика или для оптимизации скорости работы);
- DROP – удалять таблицы;
- EVENT – обработка событий;
- TRIGGER – создание триггеров;
- USAGE PRIVILEGES – отменить все привилегии.
GRANT CREATE, SELECT, UPDATE ON *.* TO username@localhost; Query OK, 0 rows affected (0.007 sec)
- CREATE, SELECT, UPDATE — это права доступа. Нужные права перечисляем через запятую;
- *.* — это [имя базы данных].[имя таблицы] . В нашем случае права даются на все базы данных и таблицы. Можно указать конкретные названия;
Если нужно разрешить все действия с данными без присвоения прав пользователям, то ставим только — ALL PRIVILEGES , если абсолютно все права то в конце команды добавляем … WITH GRANT OPTION . Пример:
GRANT ALL PRIVILEGES ON *.* TO username@localhost WITH GRANT OPTION; Query OK, 0 rows affected (0.007 sec)
Чтобы права доступа вступили в силу нужно их применить:
FLUSH PRIVILEGES; Query OK, 0 rows affected (0.007 sec)
Показать привелегии пользователя
SHOW GRANTS FOR username@localhost; +--------------------------------------------------------------------------------------------+ | Grants for username@localhost +--------------------------------------------------------------------------------------------+ | GRANT SELECT, UPDATE, CREATE ON *.* TO `username`@`localhost` IDENTIFIED BY PASSWORD '*247'| +--------------------------------------------------------------------------------------------+ 1 row in set (0.000 sec)
Убрать одну привилегию
К примеру, уберем возможность у пользователя редактировать данные в строке – UPDATE . Для этого нужно выполнить команду:
REVOKE UPDATE ON *.* FROM username@localhost; Query OK, 0 rows affected (0.002 sec) FLUSH PRIVILEGES; Query OK, 0 rows affected (0.007 sec)
Сменить пароль
ALTER USER username@localhost IDENTIFIED BY 'new_password'; Query OK, 0 rows affected (0.007 sec)
Сменить имя или host пользователю
Если необходимо разрешить пользователю подключаться из любых мест, а не только с самого сервера, необходимо поменять host на % вместо localhost.
Или нужно просто сменить имя.
RENAME USER username@localhost TO username@%; Query OK, 0 rows affected (0.007 sec)
Как добавить пользователя в MySQL базу данных?

База данных — важная составляющая любого веб-проекта, поэтому важно знать, как ею можно управлять. И первое, что вам предстоит сделать при работе с любой БД MySQL — добавить пользователя. Сделать это можно по-разному, и далее вы узнаете два наиболее популярных способа — при помощи консоли и phpMyAdmin.
Если Вы приобрели хостинг для сайта с защитой от DDoS и вирусов, то вам так же предоставляется удобная панель для управления пользователями MySQL.
Как добавить пользователя MySQL из консоли
Это самый простой способ добавления нового пользователя в базу данных. Каковы же его достоинства и недостатки?
Недостатком работы с консолью можно назвать то, что вам нужно знать команды MySQL, ведь без этого вы не сможете ничего сделать. К счастью, эта проблема не настолько серьезна, насколько может показаться на первый взгляд. Можно выучить нужные команды или же просто держать под рукой справочник.
Достоинством же этого способа является то, что вы можете добавить пользователя с root-правами в БД MySQL, имея только SSH-подключение и командную строку. Это значит, что вам не придется устанавливать дополнительное программное обеспечение для полноценной работы с базой данных. К тому же, использование консоли способно сэкономить вам время, ведь скорость работы с БД в этом случае намного выше.
Для того чтобы добавить нового пользователя MySQL и назначить ему нужные права достаточно выполнить следующие действия:
- Ввести в консоли команду: mysql –uNAME –pPASSWORD
При этом вместо NAME вы должны ввести имя уже существующего пользователя, а вместо PASSWORD — его пароль. - Выбрать нужную базу данных
Для этого вам необходимо ввести команду USE db_name, где db_name имя нужной базы данных. Если вам нужно сначала добавить базу данных MySQL, прежде чем выбрать ее, используйте команду: CREATE DATABASE db_name, где db_name — имя новой БД. - Создать нового пользователя в выбранной базе
Для этого используется команда CREATE USER ‘user_name’@’localhost’ IDENTIFIED BY ‘password’; где ‘user_name’ — имя пользователя, а ‘password’ — его пароль. - Предоставление root-прав новому пользователю
Если в этом есть необходимость, то воспользуйтесь командой GRANT ALL PRIVILEGES ON db_name.* TO ‘user_name’@‘localhost’; где db_name — имя нужной БД, ‘user_name’ — имя пользователя. После этого все привилегии сохраняются командой FLUSH PRIVILEGES.
Новый пользователь в нужной базе данных создан!
Как добавить пользователя в базу данных MySQL при помощи phpMyAdmin
Второй вариант более прост в исполнении, так как для него используется графический интерфейс phpMyAdmin. Достоинством этого метода можно назвать то, что используемая программа проста и понятна даже для новичка. Недостаток, к сожалению, также существует — скорость выполнения операций ниже, чем при использовании консоли. Да и сам phpMyAdmin установлен не на каждом сервере.
Чтобы добавить пользователя MySQL в phpMyAdmin выполните следующие действия:
- Откройте графический интерфейс.
- Выберите базу данных, в которую нужно добавить пользователя.
- Переедите во вкладку «Привилегии».
- Создайте нового пользователя, нажав на кнопку «Добавить нового пользователя».
- Заполните необходимые данные о пользователе — имя и пароль.
- Выберите БД для нового пользователя и выберите «Отметить все» в разделе «Глобальные привилегии».
- Подтвердите свой выбор, после чего пользователь будет создан.
Теперь вы знаете, как добавить пользователя в БД MySQL. Как видите, в этом нет ничего сложного, если понимать суть этого процесса. Но если у вас все равно остались вопросы по работе с базой данных сайта на хостинге RigWEB, то вы всегда можете задать их нашим специалистам техподдержки. Пользуйтесь профессиональным хостингом и работайте над развитием своих веб-проектов с удовольствием!
Когда Вам потребуется виртуальный сервер аренда которого стоит не много — рекомендуем взять его у нас. Мы предоставляем бесплатную техническую поддержку, которая работает круглосуточно.
Как создать нового пользователя и настроить права доступа в MySQL
Чтобы начать работу в MySQL, установите LEMP или LAMP по соответствующей инструкции в разделе: Установка программного обеспечения.
После установки MySQL/MariaDB автоматически будет создан MySQL пользователь root. Работать с базой данных под root небезопасно, поэтому необходимо создать нового пользователя, а затем назначить ему специальные права доступа. Сделать это можно через консоль или через phpMyAdmin.
Как создать нового пользователя в MySQL
через phpMyAdmin
через консоль
Чтобы добавить нового пользователя, установите приложение phpMyAdmin. Как установить phpMyAdmin, описано в инструкции. После установки проверьте, что ваш сервер включен. Для входа в phpMyAdmin используйте root-логин и root-пароль сервера.

Откройте приложение и перейдите на вкладку Учетные записи пользователей. Кликните по строке Добавить учетную запись пользователя:

На открывшейся странице укажите имя пользователя, хост и пароль. Подтвердите пароль. Также вы можете сгенерировать пароль, нажав на кнопку Генерировать.
- Если вы хотите дать новому пользователю доступ только к конкретным базам данных, на этом этапе можно не назначать никаких привилегий.
- Если вы хотите выбрать все привилегии и предоставить новому пользователю неограниченный доступ, кликните Отметить все.
Нажмите кнопку Вперёд внизу страницы:

Готово, вы добавили учётную запись:

Если вы хотите, чтобы пользователь имел доступ к конкретным базам данных, вам потребуется настройка прав доступа.
Прежде чем создать нового пользователя через консоль, подключитесь к VPS-серверу по SSH. После этого:
Запустите сервер базы данных с помощью команды:
mysql
- вместо user-name укажите логин пользователя базы данных;
- вместо password укажите пароль нового пользователя.
На этом этапе новый пользователь не имеет никаких разрешений на работу с базами данных. Он не может войти в систему и добраться до оболочки MySQL, поэтому нужно предоставить ему неограниченные права доступа. Для этого введите команду: GRANT ALL PRIVILEGES ON * . * TO ‘user-name’@’localhost’; Не забудьте изменить user-name на логин, который был указан при создании пользователя.
Чтобы изменения вступили в силу, введите команду: FLUSH PRIVILEGES;
Готово, наш новый пользователь получил те же права доступа в базе данных, что и пользователь MySQL root.
Как настроить права доступа для пользователя в MySQL
через phpMyAdmin
через консоль

Откройте phpMyAdmin и перейдите на вкладку Учетные записи пользователей. Выберите нужную учетную запись и нажмите Редактировать привилегии:

На открывшейся странице перейдите на вкладку База данных. Выберите из списка базу данных, к которой хотите дать доступ пользователю, и нажмите Вперёд:

Выберите привилегии. Для этого поставьте галочки напротив нужных типов привилегий. Чтобы подробнее узнать о каждой привилегии, наведите на неё курсор и прочитайте справочную информацию. Если вы хотите выбрать все привилегии и предоставить новому пользователю неограниченный доступ, кликните Отметить все. Затем нажмите Вперёд:
Готово, вы настроили привилегии для пользователя.
Важно: обязательно выполняйте команду 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’;
Как создать пользователя MySQL
По умолчанию в MySQL будет только один пользователь — root. Это администратор c доступом ко всем базам данных и таблицам внутри этих баз.
В этой статье покажем, как создать нового пользователя MySQL и присвоить ему права доступа при помощи командной строки.
Это удобно, если нужно дать доступ к конкретной таблице другому человеку, но с ограниченными правами. Например, чтобы он мог её редактировать, но не мог удалить.
Что внутри
- Подключиться к серверу и зайти в MySQL
- Создать пользователя MySQL
- Настроить права доступа
- Забрать права доступа
- Удалить пользователя
- Выйти из MySQL
Подключиться к серверу и зайти в MySQL
Сначала подключитесь к серверу по SSH. Обычно хостинг-провайдеры присылают логин и пароль для подключения в письме об активации хостинга. У нас это письмо называется по-разному в зависимости от типа хостинга: «Ваш виртуальный хостинг готов к использованию», «Это ваш VPS готов?» или «Выделенный сервер заказывали?».
После подключения к серверу авторизуйтесь как root пользователь MySQL с помощью команды:
mysql -u root -p
Создать пользователя MySQL
В другой нашей статье мы показали, как создать базу данных MySQL. Ради примера создали в ней таблицу со списком товаров для книжного магазина. Предположим, что нужно передать управление таблицей другому человеку. Ему нужно создать нового пользователя MySQL. Используйте для этого команду CREATE USER с таким синтаксисом:
CREATE USER “ имя_пользователя “@” хост ” IDENTIFIED BY “ пароль “;
Параметр «хост» в команде означает устройство, с которого человек сможет подключаться к серверу MySQL. Здесь вы можете использовать несколько вариантов:
- localhost. Означает, что доступ к MySQL появится у пользователя только после того, как он подключится к серверу;
- IP-адрес устройства в сети, с которого человек будет подключаться к MySQL;
- %. Означает, что у пользователя будет доступ к MySQL с любого устройства.
В последних двух вариантах дополнительно подключаться к серверу не понадобится, но придётся сначала разрешить удалённые подключения в настройках MySQL.
Если не знаете, какой хост указать, используйте localhost. Это самый безопасный вариант. Придётся дополнительно подключаться к серверу, но зато злоумышленникам будет сложнее получить доступ к базе данных.
Теперь подставим в команду реальные данные. Не забудьте, что все команды в MySQL должны заканчиваться точкой с запятой .
CREATE USER "bookstore_administrator"@"localhost" IDENTIFIED BY "Hgy467Hkgd";
Настроить права доступа
Пользователя создали, но он ничего не может сделать с базой данных, пока вы не назначите ему привилегии. Для этого используйте команду GRANT с таким синтаксисом:
GRANT ПРИВИЛЕГИЯ , ПРИВИЛЕГИЯ ON база_данных . таблица TO “ имя_пользователя “@” хост “;
Привилегия — это право на конкретные действия в MySQL. Например, редактирование базы данных или создание нового пользователя. Если нужно предоставить сразу несколько привилегий, пропишите их в команде через запятую.
Вот список часто используемых привилегий:
- ALL — дать все права к базе данных, кроме GRANT OPTION. Если вы не укажете название конкретной базы данных, пользователь получит полный доступ ко всему MySQL-серверу;
- CREATE — право создавать новые базы данных и таблицы;
- DELETE — право удалять строки из таблицы;
- DROP — право удалять базы данных или таблицы;
- GRANT OPTION — право назначать или отбирать права. Но получится дать или отобрать только те права, которыми владеет использующий команду пользователь;
- INSERT — право создавать строки в таблице;
- SELECT — право просматривать строки в таблицах;
- UPDATE — право менять содержание строк в таблицах.
Теперь давайте предоставим нашему пользователю bookstore_administrator привилегии на создание таблиц в базе данных bookstore. А также разрешим добавлять записи в эти таблицы:
GRANT CREATE, INSERT ON bookstore.* TO "bookstore_administrator"@"localhost";
Звёздочка в нашем примере означает «все таблицы внутри базы данных bookstore». Вы также можете заменить имя базы данных на звездочку, чтобы присвоить пользователю права для всех баз данных на сервере.
Когда закончите присваивать привилегии, перезагрузите их командой FLUSH PRIVILEGES, чтобы они вступили в силу:
FLUSH PRIVILEGES;
Теперь посмотрим, какие доступы есть у bookstore_administrator:
SHOW GRANTS FOR "bookstore_administrator"@"localhost";
Результат будет таким:

Если же через время вашему пользователю понадобятся дополнительные привилегии, добавьте их при помощи той же команды. Допустим, мы хотим дать пользователю bookstore_administrator все права.
GRANT ALL ON bookstore.* TO "bookstore_administrator"@"localhost";
Перезагружаем привилегии командой FLUSH PRIVILEGES и проверяем командой SHOW GRANTS:

Забрать права доступа
Если привилегии нужно наоборот забрать, запустите команду REVOKE:
REVOKE ПРИВИЛЕГИЯ ON база_данных . таблица FROM “ имя_пользователя “@” хост “;
Допустим, нам нужно забрать у пользователя bookstore_administrator право удалять таблицы в базе данных bookstore. Тогда команда будет такой:
REVOKE DROP ON bookstore.* FROM "bookstore_administrator"@"localhost";
Не забудьте после этого снова перезагрузить привилегии командой FLUSH PRIVILEGES.
Удалить пользователя MySQL
Чтобы удалить пользователя MySQL, используйте команду DROP USER:
DROP USER “ имя_пользователя “@” хост “;
Эта команда не требует дополнительного подтверждения . Пользователь базы данных удалится с первого раза и отменить это нельзя, поэтому используйте команду аккуратно.
Выйти из MySQL
В конце работы отключитесь от MySQL-сервера с помощью команды: