Перейти к основному контенту

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

Чтобы начать работу в MySQL, установите LEMP или LAMP по соответствующей инструкции в разделе: Установка программного обеспечения.

После установки MySQL/MariaDB автоматически будет создан MySQL пользователь root. Работать с базой данных под root небезопасно, поэтому необходимо создать нового пользователя, а затем назначить ему специальные права доступа. Сделать это можно через консоль или через phpMyAdmin.

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

через phpMyAdmin
через консоль

Чтобы добавить нового пользователя, установите приложение phpMyAdmin. Как установить phpMyAdmin, описано в инструкции. После установки проверьте, что ваш сервер включен. Для входа в phpMyAdmin используйте root-логин и root-пароль сервера.

  1. 1.

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

    phpMyAdmin Учетные записи пользователей

  2. 2.

    На открывшейся странице укажите имя пользователя, хост и пароль. Подтвердите пароль. Также вы можете сгенерировать пароль, нажав на кнопку Генерировать.

    phpMyAdmin Заполните поля

  3. 3.

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

    • Если вы хотите дать новому пользователю доступ только к конкретным базам данных, на этом этапе можно не назначать никаких привилегий.

    • Если вы хотите выбрать все привилегии и предоставить новому пользователю неограниченный доступ, кликните Отметить все.

    Нажмите кнопку Вперёд внизу страницы:

    phpMyAdmin Отметить все

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

    phpMyAdmin Новая учетная запись

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

Прежде чем создать нового пользователя через консоль, подключитесь к VPS-серверу по SSH. После этого:

  1. 1.

    Запустите сервер базы данных с помощью команды:

    mysql
  2. 2.

    Создайте пользователя с помощью команды:

    CREATE USER 'user-name'@'localhost' IDENTIFIED BY 'password';

    Замените значения внутри кавычек:

    • вместо user-name укажите логин пользователя базы данных;
    • вместо password укажите пароль нового пользователя.
  3. 3.

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

    Для этого введите команду:

    GRANT ALL PRIVILEGES ON * . * TO 'user-name'@'localhost';

    Не забудьте изменить user-name на логин, который был указан при создании пользователя.

  4. 4.

    Чтобы изменения вступили в силу, введите команду:

    FLUSH PRIVILEGES;

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

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

через phpMyAdmin
через консоль
  1. 1.

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

    phpMyAdmin Редактировать привилегии

  2. 2.

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

    phpMyAdmin Базы данных

  3. 3.

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

    Затем нажмите Вперёд:

    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’;
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0