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

by Alejandro Granata
Как создать и управлять пользователями MySQL thumbnail

Представьте библиотеку, где каждый может прийти и в любое время внести изменения в книги.

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

Кто-то переписал героическое путешествие Фродо и Сэма в Мордор, заставив их отказаться от спасения Средиземья и вместо этого открыть ювелирный магазин в Бри. Их первый клиент? Саурон. И представьте себе, он ищет кольцо.

Что касается Арагорна, Леголаса и Гимли? Скажем так, тот, кто редактировал историю, очень увлекается фанфикшеном. Оставим это при себе.

Ваш сайт – это как библиотека, а база данных, которая его поддерживает, – это все книги в ней. Если вы разрешите практически любому войти и внести изменения, это может привести к ситуации с переписыванием “Властелина колец” — но гораздо хуже, поскольку это может поставить под угрозу весь ваш сайт (и все его данные).

Глоссарий DreamHost

База данных

База данных – это коллекция информации, доступной для компьютеров. Базы данных используются для хранения информации, такой как записи о клиентах, каталоги продуктов и финансовые транзакции.

Читать далее

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

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

Готовы начать? Начнем!

Что такое база данных MySQL?

MySQL база данных — это структурированная коллекция данных, хранящаяся в электронном виде и управляемая с использованием системы управления базами данных MySQL (DBMS).

MySQL — это система управления реляционными базами данных с открытым исходным кодом, которая использует язык структурированных запросов (SQL) для доступа, управления и манипулирования данными.

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

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

Профессиональный совет: Необходимо мигрировать или подключить базу данных MySQL к вашему сайту DreamHost? Найдите простой в использовании учебник в нашей Базе знаний.

Получайте контент прямо в свой почтовый ящик

Подпишитесь сейчас, чтобы получать все последние обновления прямо в свой почтовый ящик.

Объяснение пользовательских аккаунтов MySQL

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

Роль пользователя Root

Когда вы впервые устанавливаете MySQL, создается учетная запись пользователя по умолчанию с именем root.

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

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

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

Диаграмма учетных записей пользователей MySQL, показывающая Root User, Developer, Administrator и New User, подключенных к блокам базы данных MySQL.

Зачем создавать новых пользователей?

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

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

Создание новых учетных записей пользователей позволяет вам:

  • Улучшение безопасности базы данных и сайта: Ограничьте доступ к конфиденциальным данным и критическим операциям, назначая каждому пользователю только необходимые разрешения.
  • Лучшая организация ролей: Четко определите роли и обязанности в вашей команде, предоставляя каждому соответствующий уровень доступа к задачам, которые необходимо выполнять.
  • Облегчение управления вашей базой данных: Легко отслеживайте и управляйте действиями пользователей, что упрощает аудит изменений и выявление проблем.

Как управлять пользователями MySQL (Два способа)

Мы рассмотрим два основных способа управления вашими пользователями MySQL: с использованием MySQL напрямую и с использованием панели DreamHost. В конечном итоге выбор метода будет зависеть от вашего уровня комфорта с инструментами командной строки и ваших конкретных требований.

Управление пользователями в MySQL

Чтобы управлять пользователями MySQL напрямую через MySQL, у вас должен быть установлен MySQL на вашей системе.

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

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

Заметка для гиков: Большинство из следующих команд можно использовать только на выделенных серверах. Вы можете ознакомиться с нашей Базой знаний для получения дополнительной информации.

Страница загрузок сообщества MySQL, показывающая опции MySQL Installer 8.0.37 для Windows, с ссылками на загрузку и деталями файла.

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

  1. Посетите официальный сайт MySQL, скачайте установщик и следуйте инструкциям по установке для вашей операционной системы (Windows, macOS или Linux).
  2. После установки вам потребуется настроить сервер MySQL для создания начальных пользовательских аккаунтов и настройки безопасности.
  3. Используйте Терминал (на macOS и Linux) или командную строку (на Windows) для доступа к интерфейсу командной строки MySQL, введя команду mysql -u root -p, за которой следует ваш пароль root.

После установки MySQL вы можете создавать, управлять и удалять учетные записи пользователей с помощью SQL-команд.

Этот метод предоставляет вам высокий уровень контроля и гибкости, но требует знания синтаксиса SQL и операций с командной строкой (более подробно мы рассмотрим это ниже).

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

  1. Войдите на сервер MySQL как пользователь Root. Введите следующую команду: mysql -u root -p.
  2. Вас попросят ввести пароль Root. После аутентификации вы будете подключены к серверу MySQL.
  3. Чтобы создать нового пользователя, используйте оператор CREATE USER. Замените newuser на желаемое имя пользователя и password на надежный пароль для нового пользователя: CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  4. Эта команда создает нового пользователя, который может подключаться только с локальной машины (localhost). Если вы хотите, чтобы пользователь мог подключаться с любого хоста, замените localhost на %.
  5. Чтобы применить изменения, выполните команду Очистка привилегий: FLUSH PRIVILEGES;

Заметка для программистов: Когда пароль задается через командную строку, рекомендуется очистить историю терминала чтобы уменьшить риск того, что кто-то наткнется на пароль.

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

  1. Войдите на сервер MySQL как пользователь root. Введите следующую команду: mysql -u root -p.
  2. Введите ваш пароль root для подключения к серверу MySQL.
  3. Используйте команду GRANT для назначения определённых привилегий пользователю. Привилегии можно назначать для определённых баз данных, таблиц или даже столбцов. Вот некоторые распространенные примеры:
    1. Назначить все привилегии на определённую базу данных (Эта команда назначает все привилегии на базу данных exampledb пользователю newuser, подключающемуся с localhost): GRANT ALL PRIVILEGES ON exampledb.* TO 'newuser'@'localhost';
    2. Назначить конкретные привилегии на определённую базу данных (Эта команда назначает только привилегии SELECT, INSERT и UPDATE на базу данных exampledb пользователю newuser с localhost): GRANT SELECT, INSERT, UPDATE ON exampledb.* TO 'newuser'@'localhost';
    3. Назначить все привилегии на все базы данных (Эта команда назначает все привилегии на все базы данных пользователю newuser, подключающемуся с localhost. Опция WITH GRANT OPTION позволяет пользователю назначать привилегии другим пользователям): GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    4. Назначить привилегии на конкретные таблицы (Эта команда назначает привилегии SELECT и INSERT на таблицу exampletable в базе данных exampledb пользователю newuser): GRANT SELECT, INSERT ON exampledb.exampletable TO 'newuser'@'localhost';
  4. Для применения изменений используйте команду FLUSH PRIVILEGES: FLUSH PRIVILEGES;

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

  1. Войдите на сервер MySQL как пользователь root. Введите следующую команду: mysql -u root -p.
  2. Введите ваш пароль root для подключения к серверу MySQL.
  3. Команда SHOW GRANTS используется для отображения привилегий, предоставленных определенному пользователю. Чтобы увидеть привилегии для конкретного пользователя, используйте следующую команду, заменив newuser на имя пользователя и localhost на хост, с которого пользователь подключается: SHOW GRANTS FOR 'newuser'@'localhost';
  4. Внимательно проверьте перечисленные привилегии, чтобы убедиться, что у пользователя есть правильные разрешения. Если необходимо внести коррективы, вы можете изменить привилегии пользователя с помощью команд GRANT или REVOKE, которые мы рассмотрим в следующих разделах.

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

  1. Авторизуйтесь на сервере MySQL под пользователем root. Введите следующую команду: mysql -u root -p.
  2. Введите ваш пароль root для подключения к серверу MySQL.
  3. Для предоставления дополнительных прав пользователю используйте команду GRANT. Например, чтобы предоставить право UPDATE на базу данных exampledb пользователю newuser, подключающемуся с localhost, используйте: GRANT UPDATE ON exampledb.* TO 'newuser'@'localhost';
  4. Для удаления определенных прав у пользователя используйте команду REVOKE. Например, чтобы отозвать право INSERT на базу данных exampledb у пользователя newuser, подключающегося с localhost, используйте: REVOKE INSERT ON exampledb.* FROM 'newuser'@'localhost';
  5. После использования команд GRANT или REVOKE не забудьте применить изменения, используя команду FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Если вам необходимо полностью изменить привилегии пользователя, может быть проще сначала отозвать все его существующие привилегии, а затем предоставить новый набор разрешений. Чтобы отозвать все привилегии у пользователя, используйте: REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'newuser'@'localhost';

Затем, предоставьте новый набор привилегий по мере необходимости: GRANT SELECT, UPDATE ON exampledb.* TO 'newuser'@'localhost';

Не забудьте очистить привилегии после внесения этих изменений: FLUSH PRIVILEGES;

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

  1. Войдите на сервер MySQL под пользователем root. Введите следующую команду: mysql -u root -p.
  2. Введите ваш пароль root для подключения к серверу MySQL.
  3. Используйте оператор DROP USER для удаления учетной записи пользователя. Замените newuser на имя пользователя и localhost на хост, с которого происходит подключение: DROP USER 'newuser'@'localhost';
  4. Если пользователь может подключаться с любого хоста, используйте: DROP USER 'newuser'@'%';
  5. Перед удалением пользователя хорошей практикой является убедиться, что от пользователя не зависят объекты (например, триггеры или процедуры). Если вы это сделаете, после удаления пользователя у вас не возникнет непредвиденных проблем. Вы можете просмотреть зависимые объекты в вашей базе данных и при необходимости переназначить права собственности.
  6. Хотя оператор DROP USER удаляет учетную запись пользователя и его привилегии, разумно выполнить Очистка привилегий, чтобы убедиться, что все изменения немедленно применены: FLUSH PRIVILEGES;

Как отобразить пользователей для базы данных MySQL

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

Если вы знакомы с командами MySQL, вы можете подумать, что есть команда SHOW USERS — аналогично командам SHOW DATABASES или SHOW TABLES, которые вы, вероятно, уже знаете и используете. Однако, команда SHOW USERS не существует.

Итак, как вы можете видеть всех пользователей вашей базы данных? Следуйте этим шагам.

  1. Авторизуйтесь на сервере MySQL с правами пользователя root. Введите следующую команду: mysql -u root -p.
  2. Введите ваш пароль root для подключения к серверу MySQL.
  3. MySQL хранит информацию о пользовательских учетных записях в таблице mysql.user. Чтобы просмотреть все учетные записи пользователей, вы можете выполнить следующий SQL-запрос для отображения списка всех пользователей и хостов, с которых они могут подключаться: SELECT user, host FROM mysql.user;
  4. Если вам нужна более подробная информация о каждом пользователе, такая как их привилегии или другие настройки, вы можете запросить дополнительные колонки из таблицы mysql.user. Например: SELECT user, host, authentication_string, plugin FROM mysql.user;
  5. Чтобы отфильтровать и просмотреть конкретных пользователей, вы можете добавить к вашему запросу условие WHERE. Например, для просмотра пользователей, подключающихся с localhost, используйте: SELECT user, host FROM mysql.user WHERE host = 'localhost';

Управление пользователями с DreamHost

Меню панели управления DreamHost, включая опции Домой, Веб-сайты и базы данных MySQL, выделенные синим цветом.

Если идея использования инструментов командной строки кажется пугающей, панель DreamHost предлагает удобную альтернативу для управления пользователями MySQL.

Панель DreamHost — это веб-интерфейс, который упрощает задачи управления базами данных, так что вам не придется использовать командные строки.

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

Планшет, отображающий страницу Базы знаний DreamHost по базам данных MySQL, с иконками чат-баллонов, серверов и пользователей вокруг.

И если вы ищете надежный управляемый хостинг для своего сайта, который не только упрощает управление базами данных с помощью интуитивно понятной панели управления, но также предлагает бесплатную миграцию, круглосуточную поддержку и гарантию бесперебойной работы — вам нужен DreamHost.

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

Выделенный хостинг

Максимум мощности, безопасности и контроля

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

Узнать больше