- Как создать пользователя mysql
- Коротко о базе данных MySQL
- Создание пользователя
- Как дать права пользователю
- Пользователями с правами root mysql
- Как создать учетные записи пользователей MySQL и предоставить привилегии
- Подготовка
- Создайте новую учетную запись пользователя MySQL
- Отображение привилегий учетной записи пользователя MySQL
- Отзыв привилегий учетной записи пользователя MySQL
Как создать пользователя mysql
Все современные приложения запрашивают подключение базы данных. Она служит так называемым хранилищем электронной информации. Помимо этого существуют системы управления этими базами. Одной из самых популярных систем на сегодняшний день является MySQL.
Коротко о базе данных MySQL
Система управления БД MySQL особенно приходится по душе тем, кто любит упорядочивать информацию в табличном виде. Стоит выполнить запрос, и информация извлекается из таблиц. Информация, имеющаяся в таблицах, строго упорядочена. Расположение строк напрямую зависит от данных, размещенных в таблице – при необходимости оно может видоизменяться.
Процесс заполнения таблиц обеспечивает SQL (язык программирования).
- Быстрый доступ к информации;
- Быстрая обработка информации;
- Надежная защита данных;
- Бесплатное пользование;
- Понятный интерфейс;
- MySQL совместим с ОС Windows и Linux;
- Есть шифрование личных данных (паролей).
А теперь перейдем от теории к практике.
Создание пользователя
Заходим в консоль mysql от имени root.
ВАЖНО! Если Вы уже залогинились от пользователя root, достаточно ввети команду без параметров — mysql
После этого можно приступать к реализации главной идеи. То есть, добавление нового юзера посредством CREATE USER. Ниже мы распишем синтаксис этой команды.
CREATE USER ‘имя_пользователя’@’хост’ IDENTIFIED BY ‘пароль для пользователя’;
Следуя вышеуказанному синтаксису, юзеру необходимо задать следующую информацию: имя пользователя и тот хост, откуда можно пройти авторизацию. В текущей ситуации указание символа «%» – способ обозначения всех возможных хостов.
Теперь разберем, как создать нового локального юзера через терминал. Просто вводим в строке текст следующего вида:
CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘parol’;
Соответственно, чтобы добавить юзера, доступ к которому появится со всевозможных хостов, нужно поменять в команде «localhost» на «%», как это уже упоминалось ранее.
Теперь зададим команду для просмотра всех добавленных юзеров. Она выглядит следующим образом:
SELECT User,Host FROM mysql.user;
Как дать права пользователю
Далее необходимо позаботиться о том, чтобы для нового юзера MySQL были назначены правильные привилегии. Для этих целей будет применять специальная команда. Она прописывается так:
GRANT привилегии ON база_данных . таблица ТО ‘имя_пользователя’@’хост’;
Какие права назначать пользователю системы – вопрос индивидуальный. Каких-либо чётких рекомендаций здесь быть не может. Единственное, о чем стоит упомянуть, так это о предоставлении всех прав над базой данных. Возможно, кому-то подойдет именно такой вариант. Как это сделать? Рассмотрим ниже.
GRANT ALL PRIVILEGES ON test_database . * TO ‘new_user’@’localhost’;
Чтобы открыть окно с данными о привилегиях пользователя, необходимо выполнить следующее действие:
SHOW GRANTS FOR ‘new_user’@’localhost’;
На этом еще не всё! После выполненных действий крайне важно произвести обновление таблицы прав пользователей. Это делается так:
Пользователями с правами root mysql
Рассмотрим еще один вероятный сценарий развития событий. На тот случай, если кому-нибудь понадобится создать пользователя с правами root MySQL. Потребуется еще раз воспользоваться терминалом для реализации задуманного:
Итак, водим текст такого вида:
GRANT ALL PRIVILEGES ON * . * TO ‘new_user’@’localhost’;
Теперь пользователь имеет все необходимые привилегии. Однако остаётся маленькая загвоздка. Она заключается в отсутствии возможности предоставлять права другим пользователям от имени этого юзера. Текущая проблема может быть решена так:
GRANT ALL PRIVILEGES ON * . * TO ‘new_user’@’localhost’ WITH GRANT OPTION;
Готово! Суперпользователь MySQL добавлен, все необходимые привилегии предоставлены.
Инструкция по созданию пользователя MySQL, предоставленная в данном материале, актуальна для Ubuntu и других дистрибутивов Debian, Centos.
Как создать учетные записи пользователей MySQL и предоставить привилегии
MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом. Сервер MySQL позволяет нам создавать многочисленные учетные записи пользователей и предоставлять соответствующие привилегии, чтобы пользователи могли получать доступ к базам данных и управлять ими.
В этом руководстве описывается, как создавать учетные записи пользователей MySQL и предоставлять привилегии.
Подготовка
Мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB.
Все команды выполняются внутри оболочки MySQL от имени пользователя root или администратора. Минимальные привилегии, необходимые для создания учетных записей пользователей и определения их привилегий, — это CREATE USER и GRANT .
Чтобы получить доступ к оболочке MySQL, введите следующую команду и при появлении запроса введите пароль root-пользователя MySQL:
Если у вас MySQL версии 5.7 или более поздней, в которой используется плагин auth_socket входа в систему как root, набрав:
Создайте новую учетную запись пользователя MySQL
Учетная запись пользователя в MySQL состоит из двух частей: имени пользователя и имени хоста.
Чтобы создать новую учетную запись пользователя MySQL, выполните следующую команду:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
В приведенном выше примере часть имени хоста установлена на localhost , что означает, что пользователь сможет подключиться к серверу MySQL только с локального хоста (то есть из системы, в которой работает сервер MySQL).
Чтобы предоставить доступ с другого хоста, измените часть имени хоста на IP-адрес удаленной машины. Например, чтобы предоставить доступ с машины с IP 10.8.0.5 вы должны запустить:
CREATE USER 'newuser'@'10.8.0.5' IDENTIFIED BY 'user_password';
Чтобы создать пользователя, который может подключаться с любого хоста, используйте подстановочный знак ‘%’ в качестве части хоста:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';
Предоставление привилегий учетной записи пользователя MySQL
Есть несколько типов привилегий, которые могут быть предоставлены учетной записи пользователя. Вы можете найти полный список привилегий, поддерживаемых MySQL здесь .
Наиболее часто используемые привилегии:
- ALL PRIVILEGES — Предоставляет все привилегии учетной записи пользователя.
- CREATE — учетной записи пользователя разрешено создавать базы данных и таблицы.
- DROP — учетной записи пользователя разрешено удалять базы данных и таблицы.
- DELETE — учетной записи пользователя разрешено удалять строки из определенной таблицы.
- INSERT — учетной записи пользователя разрешено вставлять строки в определенную таблицу.
- SELECT — учетной записи пользователя разрешено читать базу данных.
- UPDATE — учетной записи пользователя разрешено обновлять строки таблицы.
Чтобы предоставить определенные привилегии учетной записи пользователя, используйте следующий синтаксис:
GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';
- Предоставьте все привилегии учетной записи пользователя для конкретной базы данных:
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';
Отображение привилегий учетной записи пользователя MySQL
Чтобы найти привилегии, предоставленные определенной учетной записи пользователя MySQL, используйте оператор SHOW GRANTS :
SHOW GRANTS FOR 'database_user'@'localhost';
Результат будет выглядеть примерно так:
+---------------------------------------------------------------------------+ | Grants for [email protected] | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Отзыв привилегий учетной записи пользователя MySQL
Синтаксис отзыва одной или нескольких привилегий для учетной записи пользователя практически идентичен синтаксису при предоставлении привилегий.
Чтобы отозвать все привилегии учетной записи пользователя над определенной базой данных, выполните следующую команду:
REVOKE ALL PRIVILEGES ON database_name.* FROM 'database_user'@'localhost';
Удаление существующей учетной записи пользователя MySQL
Приведенная выше команда удалит учетную запись пользователя и ее привилегии.
Выводы
Этот учебник охватывает только основы, но он должен стать хорошим началом для всех, кто хочет научиться создавать новые учетные записи пользователей MySQL и предоставлять привилегии.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.