MySQL

Как создать пользователя MySQL и настроить права доступа

Как создать пользователя MySQL и настроить права доступа

Вступление

Если вы интересуетесь web-разработкой или программной разработкой в целом, вы наверняка слышали о базах данных. Базы данных  это виртуальные хранилища для данных, необходимых для создания web-приложений. Они используются для хранения сведений о пользователе, таких как: имя пользователя, пароль, email-адрес и другие. В целом, любой вид информации, который вам может понадобиться в дальнейшем может храниться в базе данных.

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

MySQL  одна из таких систем управления базами данных. Это одна из самых известных систем, благодаря своей лёгкости в использовании и поддержке сообщества. К слову, её распространённость привлекла даже такие крупные компании как, Facebook и Twitter, которые в некоторой степени используют её.

В этом руководстве мы сделаем обзор основ MySQL и изучим как создать пользователя MySQL. Также мы изучим, как предоставлять привилегии доступа для пользователей MySQL. В этом руководстве всё это мы будем делать из командной строки.

Что вам понадобится

Перед тем как начать, вам понадобится следующее:

Шаг 1 – Создать пользователя MySQL и предоставить неограниченные права доступа

Как только вы начнёте использовать MySQL, вам будет предоставлено имя пользователя и пароль. Эти начальные учётные данные дают вам привелегии ‘root-доступа’. Пользователь с правами доступа root имеют полный доступ ко всем базам данных и таблицам внутри этих баз.

Но часто, вам нужно предоставить доступ к базе данных для кого-то ещё, не давая полного управления. Например, компании, которые нанимают разработчиков для ведения баз данных, но не хотят давать им возможность удалять или изменять какую-либо конфиденциальную информацию, скорее всего предоставят им права доступа не root пользователя. В таком случае, компания может контролировать то, что её разработчики могут и не могут делать с данными.

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

  1. Запустите командную строку и из неё сервер MySQL:
    mysql

    Если вы хотите попрактиковаться с этими командами на вашем VPS сервере, вам нужно прежде установить SSH подключение.

  2. Выполните следующую команду:
    CREATE USER 'non-root'@'localhost' IDENTIFIED BY '123';

    В этой команде, ‘non-root’ – это имя, которое мы назначаем нашему новому пользователю. А ‘123’ – это его пароль. Вы можете заменить на свои значения внутри кавычек.

  3. Просто создать нового пользователя недостаточно. Вам необходимо назначить для него права доступа. Чтобы назначить вновь созданном пользователю неограниченные права доступа к базе данных, выполните следующую команду:
    GRANT ALL PRIVILEGES ON * . * TO 'non-root'@'localhost';
  4. Для того, чтоб изменения вошли в силу запустите команду обновления:
    FLUSH PRIVILEGES;

Это всё! Ваш новый пользователь получил те же права доступа в базе данных, что и пользователь root.

Шаг 2 – Назначить специальные права доступа для пользователя MySQL

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

GRANT [тип прав] ON [имя базы данных].[имя таблицы] TO ‘non-root’@'localhost’;

Вам просто нужно заменить значение ‘тип прав’ на тот вид прав доступа, который вы хотите предоставить новому пользователю. Также вам нужно указать базу данных и имена таблиц, доступ к которым предоставляется. Аналогично предыдущему примеру, ‘non-root’  это имя пользователя, то есть вы можете его заменить на нужное вам. В MySQL есть несколько типов прав доступа, некоторые из них описаны ниже:

  • CREATE – Позволяет пользователям создавать базы данных/таблицы
  • SELECT – Позволяет пользователям делать выборку данных
  • INSERT – Позволяет пользователям добавлять новые записи в таблицы
  • UPDATE – Позволяет пользователям изменять существующие записи в таблицах
  • DELETE – Позволяет пользователям удалять записи из таблиц
  • DROP – Позволяет пользователям удалять записи в базе данных/таблицах

Для использования любой из этих опций, просто замените [тип прав] необходимым словом. Чтобы назначить несколько видов прав доступа, разделите их запятыми как в следующей команде. Например, мы можем назначить такие привилегии как CREATE и SELECT для нашего non-root пользователя MySQL такой командой:

GRANT CREATE, SELECT ON * . * TO 'non-root'@'localhost';

Конечно, вы можете столкнуться с ситуацией, когда нужно забрать у пользователя данные ранее права доступа. Сделать это можно выполнив следующую команду:

REVOKE [тип прав] ON [имя базы данных].[имя таблицы] FROM ‘non-root’@‘localhost’;

Например, чтобы отменить все привилегии у пользователя non-root user нужно сделать:

REVOKE ALL PRIVILEGES ON *.* FROM 'non-root'@'localhost';

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

DROP USER ‘non-root’@‘localhost’;

Помните, что для выполнения любой из этих команд вам нужно иметь права доступа root. Также, обязательно выполняйте FLUSH PRIVILEGES после любого изменения в правах доступа.

Заключение

В этом руководстве мы изучили некоторые основы работы с правами доступа в MySQL и как создать пользователя MySQL. В частности:

  • Создание нового пользователя и назначение ему всех прав доступа
  • Назначение специальных прав доступа пользователям, а также их отмена и удаление пользователей

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

2 комментария

Нажмите здесь, чтобы оставить комментарий

Присоединяйтесь к тысячам других подписчиков по всему миру

и получайте самые свежие руководства на вашу электронную почту

Пожалуйста, подождите...

Спасибо за подписку!

Начните экономить сейчас!

Хостинг и доменное имя от

руб.95
00