- Как создать пользователя mysql
- Коротко о базе данных MySQL
- Создание пользователя
- Как дать права пользователю
- Пользователями с правами root 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 обладает множеством возможностей предоставления конкретным пользователям детализированных прав для работы с таблицами и базами данных. В этом руководстве мы кратко расскажем о ряде из этих возможностей.
Что означает выделенный текст
В этом руководстве любые строки, которые пользователь должен ввести или изменить, будут выделены цветом ! Весь остальной текст можно просто скопировать и вставить.
Создание нового пользователя
В части 1 руководства по работе с MySQL мы воспользовались всеми возможностями для редактирования в MySQL с помощью пользователя с правами root, обладающего полным доступом ко всем базам данных. Однако для тех случаев, когда нам могут потребоваться дополнительные ограничения, существует возможность создания пользователей с настраиваемыми правами.
Давайте начнем с создания нового пользователя внутри оболочки MySQL:
Примечание: при добавлении пользователей в оболочке MySQL в данном руководстве мы будем в качестве хоста пользователя использовать localhost , а не IP-адрес сервера. localhost — это имя хоста, которое означает «этот компьютер», и MySQL работает с этим именем хоста особенным образом: когда пользователь на данном хосте выполняет вход в MySQL, СУБД будет пытаться подключиться к локальному серверу, используя файл сокета Unix. Таким образом, localhost обычно используется, если вы планируете подключение к вашему серверу через SSH или если вы запускаете локальный клиент mysql для подключения к локальному серверу MySQL.
В данный момент newuser не имеет прав на выполнение каких-либо действий с базами данных. Фактически, даже если newuser попытается выполнить вход (с помощью пароля password ), он не сможет получить доступ к оболочке MySQL.
Таким образом, первое, что необходимо сделать, — это предоставить пользователю доступ к необходимой ему информации.
Звездочки в этой команде обозначают базу данных и таблицу (соответственно), к которым пользователь может получить доступ. Эта конкретная команда позволяет пользователю читать, редактировать, запускать и выполнять любые задачи для всех баз данных и таблиц.
Обратите внимание, что в этом примере мы предоставляем newuser полный корневой доступ ко всему содержанию нашей базы данных. Хотя это может быть полезно для объяснения некоторых концепций MySQL, в большинстве случаев это может быть нецелесообразно и может отрицательно сказаться на безопасности вашей базы данных.
После того как вы определились с правами, которые вы хотите предоставить вашему новому пользователю, необходимо будет во всех случаях перезагрузить все привилегии.
После этого внесенные вами изменения вступят в силу.
Предоставление пользователю различных прав
Ниже представлен короткий список других часто используемых прав, которые могут предоставляться пользователям.
- ALL PRIVILEGES — как мы уже увидели ранее, данный набор прав предоставляет пользователю MySQL полный доступ к определенной базе данных (если не выбрана ни одна база данных, предоставляется глобальный доступ к системе)
- CREATE — позволяет пользователю создавать новые таблицы или базы данных
- DROP — позволяет пользователю удалять таблицы или базы данных
- DELETE — позволяет пользователю удалять строки из таблиц
- INSERT — позволяет пользователю вставлять строки в таблицы
- SELECT — позволяет пользователю выполнять команду SELECT для чтения данных из базы
- UPDATE — позволяет пользователю обновлять строки таблицы
- GRANT OPTION — позволяет пользователю предоставлять или отзывать права других пользователей
Чтобы предоставить конкретному пользователю какое-либо право, вы можете использовать следующую структуру команды:
Если вы хотите предоставить пользователю доступ к любой базе данных или любой таблице, необходимо поместить звездочку (*) на место имени базы данных или имени таблицы.
При каждом обновлении или изменении права необходимо использовать команду сброса привилегий.
Если вам требуется отозвать какое-либо право, структура команды будет практически идентична структуре команды, используемой для предоставления права:
Обратите внимание, что при отзыве прав синтаксис требует использования элемента FROM вместо элемента TO , который мы использовали при предоставлении прав.
Вы можете просмотреть текущие права пользователя с помощью следующей команды:
Так же как вы можете удалять базы данных с помощью DROP, вы можете использовать DROP для полного удаления пользователя:
Чтобы протестировать вашего нового пользователя, выполните выход, введя следующую команду:
а затем войдите снова, введя следующую команду в терминале:
Заключение
После прохождения этого руководства у вас должно появиться понимание того, как добавлять новых пользователей и предоставлять им различные права для работы с базой данных MySQL. Теперь вы можете продолжать изучение и эксперименты с различными конфигурациями прав для вашей базы данных или узнать больше о некоторых продвинутых конфигурациях MySQL.
Если вы хотите узнать больше об основах работы с MySQL, мы рекомендуем вам ознакомиться со следующими обучающими материалами:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.