Mysql управление пользователями. Работа в командной строке MySQL. Контроль возможностей созданных юзеров

В этой статье мы расскажем, как создать новые права доступа пользователей и привилегии для этого пользователя в MySQL . MySQL является реляционной базой данных с открытым исходным кодом, управляемая системой (СУБД), которая позволяет пользователям и приложениям сохранять, организовывать, и получить свои данные. Она имеет систему контроля доступа, которая состоит из разрешений, которые пользователи могут иметь в таблицах и базах данных, мы посмотрим на некоторые из вариантов этой системы контроля доступа описанные позже в этом руководстве.

Давайте начнем с входа в систему

Чтобы войти в нашу систему MySQL, мы используем следующую команду:

# mysql -u root -p

При выполнении этой команды мы говорим клиенту MySQL, что мы входим в с суперпользователем и указываем пароль пользователя.

Создание нового пользователя

Теперь, когда мы находимся внутри нашего сервера MySQL мы можем поручить MySQL, чтобы создать нового пользователя с помощью следующего запроса:

CREATE USER "new_user"@"localhost" IDENTIFIED BY "password";

Совет : всегда используйте надежный пароль для всех учетных записей. Который Вы можете .

Еще одна интересная вещь, об этой команде является то, что имя хоста нового пользователя, которого мы только что создали может быть другое имя хоста или IP – адрес, если мы хотим, чтобы пользователь вошел в систему удаленно.
В качестве примера:

CREATE USER "new_user"@"10.20.30.111" IDENTIFIED BY "password";

Допустим, мы хотим предоставить нашему новому пользователю права доступа, так что они могут считывать данные из всех баз данных на нашем сервере MySQL. Мы делаем это, введя следующую команду:

GRANT SELECT ON *.* TO "new_user"@"localhost";

При выполнении запроса выше мы поручаем MySQL, дать нашему новому пользователю разрешения использовать команду SELECT, для чтения из базы данных на нашем сервере MySQL, мы использовали ключевое слово SELECT, для того, чтобы сделать это. GRANT SELECT, сообщает MySQL, что пользователь не будет иметь ничего, кроме разрешений на чтение данных из данной базы данных или баз данных. Предоставление разрешений, как правило, осуществляется в следующем формате:

GRANT ON .

TO ""@"";

Мы также можем поручить MySQL, забрать определенное разрешение от пользователя в том же формате, что и выше, только заменив ключевое слово GRANT на REVOKE и ключевое слово TO на FROM:

REVOKE ON .

FROM ""@"";

Примечание:

Звездочки, которые мы используем для позиций баз данных и таблиц в запросе выше, маска и соответствует любой базе данных или таблицы в зависимости от позиции.

Для того, чтобы наши новые установленные разрешения вступили в силу, нам нужно перезагрузить все привилегии:

FLUSH PRIVILEGES;

Предоставление пользователям других видов разрешений

В предыдущем разделе мы видели, как предоставить разрешения на чтение для пользователя с помощью ключевого слова SELECT. В этом разделе мы рассмотрим другие ключевые слова, которые позволят устанавливать различные типы разрешений на пользователе.

  • USAGE – дает пользователю право доступа для входа на сервер MySQL (задается по умолчанию при создании нового пользователя)
  • SELECT – дает пользователю разрешение на использование команды выбора для извлечения данных из таблиц
  • INSERT – дает разрешение на добавление новых строк в таблицах
  • UPDATE – дает пользователю право изменять существующие строки в таблицах
  • DELETE – дает пользователю право удалять существующие строки из таблиц
  • CREATE – дает пользователю разрешение для создания новых таблиц или баз данных
  • DROP – дает пользователю право удалить существующие таблицы или базы данных
  • ALL PRIVILEGES – дает пользователю право иметь неограниченный доступ на базы данных или всей системы (с помощью звездочки в позиции базы данных)
  • GRANT OPTION – дает пользователю право разрешать или удалять разрешения других пользователей

Удаление пользователей осуществляется таким же образом, как и с базами данных или таблицами с помощью команды DROP:

DROP USER "new_user"@"localhost";

Наконец, мы можем протестировать нашего нового пользователя, введите следующую команду для завершения текущего активного сеанса:

А потом мы снова войдем в систему, введя следующую команду в командной строке:

Mysql -u new_user -p

Примечание:

Не забудьте заменить new_user на собственное необходимое имя пользователя.

Вот, теперь вы создали своего собственного пользователя в MySQL и дали ему соответствующие разрешения.

От автора: я бы вам советовал быть внимательнее с привилегиями. Один мой знакомый, который обладает в своей квартире правами администратора, наделил жену «привилегией» ограничения доступа к холодильнику. В итоге уже второй месяц сидит на диете и питается только овощами. Поэтому даже перед тем, как добавить пользователя в MySQL, хорошо подумайте!

Тех, кому доверяем!

Но все-таки есть на свете люди, которым можно доверять. И конечно, это не жена и не теща . Давайте научимся сегодня добавлять учетные записи в MySQL и наделять их определенными привилегиями.

Это можно делать как через командную строку, так и через программные оболочки. Для начала рассмотрим легкий вариант. Воспользуемся для добавления нового пользователя программой phpMyAdmin. Но для начала давайте сделаем маленький экскурс в систему учетных записей, реализованную в СУБД.

Выше всех в иерархии стоит пользователь с учетной записью root. Изначально эта учетка поставляется с пустым значением пароля. Администратор (root) может в MySQL добавить пользователя, наделить его определенными правами, а также лишить привилегий.

Система привилегий реализована не только на сервере СУБД, но и на уровне баз. Можно наделить пользователя доступом к определенной БД, а также разрешить ему выполнять только определенные операции с «хранилищем». Например, запретить вставлять, удалять и обновлять данные, но разрешить делать выборки из таблиц. Но все это легче познается в деле, поэтому приступим.

Добавление учеток через phpMyAdmin

Откройте приложение, вверху перейдите по вкладке «Пользователи». После этого отобразится таблица «Обзор учетных записей». В ней указаны все учетные записи, которые существуют на экземпляре сервера, а также краткая информация об их привилегиях.

Чтобы добавить новую учетную запись, нужно нажать на ссылку «Добавить пользователя», которая расположена ниже таблицы. После чего система приложения выведет специальное диалоговое окно «Добавить пользователя».

В самом верхнем разделе («Информация учетной записи») следует задать имя нового пользователя, установить и подтвердить пароль. Также можно получить случайное значение пароля, которое будет автоматически подставлено в поля. Для этого нужно нажать кнопку «Генерировать».

Если прокрутить немного вниз, то станут доступными для редактирования глобальные привилегии, которыми можно наделить создаваемого пользователя. На снимке видно, что все привилегии разделены на несколько категорий: «Данные», «Структура» и «Администрирование». Перед тем, как добавить пользователя в MySQL ,ознакомьтесь с ними и отметьте нужные.

Для создания учетки нажмите внизу диалогового окна кнопку «Добавить пользователя». Теперь посмотрим на результат наших действий. Снова вернитесь к таблице «Обзор учетных записей» и ознакомьтесь с ее содержанием. Как видите, на сервере была создана новая учетка с заданным нами именем.

Добавляем нового пользователя БД

Через phpMyAdmin можно заниматься администрированием ролей не только глобально, но и на уровне отдельных БД. Чтобы в MySQL добавить пользователя к базе, в списке слева выберите нужную. Затем перейдите через пункт меню «Привилегии», где в таблице отобразятся все пользователи, которые имеют доступ к этой базе. Чтобы создать новую учетку БД, нажмите на ссылку «Добавить пользователя», которая расположена немного ниже (под таблицей).

После чего появится знакомый нам уже диалог «Добавить пользователя». Заполняем все поля, как и в предыдущем примере. Наделим leha2 глобальными привилегиями на базу world – пусть что хочет, то и делает с этим миром . И нажимаем внизу «Добавить пользователя».

Контроль возможностей созданных юзеров

Разберемся, что может созданным нами последний «Леха». Переходим в командную строку. Входим на сервер и выполним выборку из базы, для которой в MySQL добавили пользователя: Z:\usr\local\mysql-5.5\bin\mysql.exe -u leha2 -p123

Теперь попробуем под этой учеткой (leha2) попасть в другую базу, и тоже сделать из нее выборку. Например, вот из этой БД:

SELECT * FROM `db1`.`animal`;

SELECT * FROM ` db1 ` . ` animal ` ;

Но в ответ получаем от MySQL «в тык», поскольку используемая учетка обладает правами только на базу world.

Но это еще не все возможности администрирования привилегий. Можно в MySQL добавить пользователя с правами только на просмотр. Для этого редактируется таблица прав существующей учетной записи или создается новая.

Снова заходим на вкладку «Привилегии». В таблице пользователей возле нужной учетки жмем «Редактирование привилегий». Затем в появившемся окне диалога выключаем все привилегии кроме select. Таким образом пользователь сможет лишь просматривать таблицы или делать из них выборки с помощью SQL-команды SELECT.

Создание юзера через консоль

Давайте научимся, как добавить пользователя в MySQL через консоль. Для этого нам нужно зайти на сервер БД с правами администратора. Затем с помощью команды CREATE создать нового юзера и задать ему пароль:

CREATE USER "verter"@"localhost" IDENTIFIED BY "12345";

CREATE USER "verter" @ "localhost" IDENTIFIED BY "12345" ;

Теперь снова зайдем в программную оболочку и глянем, появился ли созданный нами «робот» в таблице «Обзор учетных записей».

Как видите, verter стал пользователем нашего сервера MySQL. Но он вообще не имеет никаких прав (как и любой робот). Так неэтично по отношению к братьям нашим «железным», поэтому снабдим его всеми привилегиями на любую из баз. Например, world.

База данных - важная составляющая любого веб-проекта, поэтому важно знать, как ею можно управлять. И первое, что вам предстоит сделать при работе с любой БД 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 выполните следующие действия:

  1. Откройте графический интерфейс.
  2. Выберите базу данных, в которую нужно добавить пользователя.
  3. Переедите во вкладку "Привилегии".
  4. Создайте нового пользователя, нажав на кнопку "Добавить нового пользователя".
  5. Заполните необходимые данные о пользователе - имя и пароль.
  6. Выберите БД для нового пользователя и выберите "Отметить все" в разделе "Глобальные привилегии".
  7. Подтвердите свой выбор, после чего пользователь будет создан.

Теперь вы знаете, как добавить пользователя в БД MySQL. Как видите, в этом нет ничего сложного, если понимать суть этого процесса. Но если у вас все равно остались вопросы по работе с базой данных сайта на хостинге RigWEB, то вы всегда можете задать их нашим специалистам техподдержки. Пользуйтесь профессиональным хостингом и работайте над развитием своих веб-проектов с удовольствием!



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: