yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

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

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

Инструкции
Иллюстрация для статьи на тему «Как создать пользователя MySQL, выдать права и привилегии»
Продукты из этой статьи:
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®

Как создавать пользователей в MySQL

Для работы с пользователями в MySQL есть специальная команда — CREATE USER. С ее помощью можно добавлять в систему новые учетные записи и настраивать параметры авторизации. 

Как применять CREATE USER

 Создайте новый аккаунт по следующему алгоритму:

  1. Подключитесь к MySQL через терминал или любой клиент (например, MySQL Workbench).

  2. Введите команду для создания пользователя.

Как это будет выглядеть:

Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

Пример создания пользователя:

Логотип MySQLЛоготип MySQL

Как создать безопасные пароли

Защитить пользовательские аккаунты от взлома помогут длинные небанальные пароли. Простые рекомендации:

  • Задавайте сложные пароли: 8+ символов.

  • Комбинируйте заглавные и строчные буквы, цифры и специальные символы. 

  • Избегайте популярных слов и фраз, личных данных. Не применяйте в качестве пароля даты рождения, номера телефонов, имена. 

  • Всегда настраивайте разные пароли для разных сервисов. 

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

Аренда облачной базы данных
Аренда облачной базы данных
Высокая скорость, копирование и защита данных
Подробнее

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

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

Как применять команду GRANT

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

Привилегия
Описание
SELECT
Чтение информации из таблиц базы
INSERT
Добавление новых записей в таблицы
UPDATE
Изменение существующих записей
DELETE
Удаление записей из таблиц
CREATE
Создание новых баз данных и таблиц
DROP
Удаление баз данных и таблиц
ALTER
Изменение структуры таблиц
INDEX
Создание и удаление индексов
ALL PRIVILEGES
Полный доступ ко всем действиям с конкретной базой данных

Как настраивать привилегии на уровне баз данных и таблиц

В MySQL можно раздавать права доступа для всего сразу или отдельно для баз данных и таблиц. Пользователи будут работать только с теми ресурсами, которые им доступны. Например, менеджер по продажам увидит таблицу с заказами, а вот список сотрудников — нет.

Можно комбинировать разные уровни доступа. Например, дать одному человеку права на чтение (SELECT), добавление (INSERT), изменение (UPDATE) и удаление (DELETE). Но лучше без необходимости так не делать, чтобы не спровоцировать случайные ошибки или инсайдерские угрозы.

Вот примеры команд для настройки прав доступа:

Дать пользователю user1 разрешение смотреть данные:

Разрешить пользователю user2 добавлять, изменять и удалять записи в таблицах:

Сделать пользователя admin\_user админом базы данных:

Работа с пользователями и их привилегиями

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

Как просматривать существующих пользователей

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

Примеры команд для поиска пользователей:

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

Команды для изменения пользовательских паролей:

Действие
Команда
Пояснение
Смена пароля
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'new_password';
Задает новый пароль для пользователя user1 на нужном хосте
Смена пароля
SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('new_password');
Позволяет менять пароли в более старых версиях MySQL
Применение изменений
FLUSH PRIVILEGES;
Для прямых изменений таблиц mysql.user, после ручного ввода UPDATE/INSERT в grant tables (НЕ требуется после GRANT/CREATE USER/REVOKE)

Команды для управления привилегиями:

Действие
Команда
Пояснение
Предоставить привилегии
GRANT SELECT, INSERT ON mydatabase.* TO 'user1'@'localhost';
Дает пользователю user1 права на чтение и изменение данных в базе mydatabase
Отозвать привилегии
REVOKE DELETE ON mydatabase.* FROM 'user1'@'localhost';
Отзывает право на удаление данных для пользователя user1 в базе mydatabase
Проверка привилегий
SHOW GRANTS FOR 'user1'@'localhost';
Показывает актуальные привилегии пользователя
Просмотр всех пользователей
SELECT User, Host FROM mysql.user;
Выдает список всех пользователей MySQL и хосты, с которых они могут подключаться к базам

Управление доступом и безопасностью

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

Как организовать безопасный сетевой доступ

Простые рекомендации, которые позволят снизить риски безопасности:

  • Не используйте общие учетки — создавайте отдельные под каждого пользователя. 

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

  • Шифруйте соединения (TLS/SSL), чтобы защитить передаваемые данные.

  • Следите за безопасностью удаленного доступа для администраторов. 

  • Регулярно проверяйте параметры bind-address, настройки брандмауэра и порты, чтобы убедиться, что MySQL доступен только легитимным пользователям.  

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

Как повысить уровень безопасности базы данных

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

  • Регулярно проверяйте, актуальны ли назначенные права.

  • Удаляйте старые учетные записи и избыточные привилегии.

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

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

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

  • Проверяйте конфигурацию my.cnf: отключайте ненужные функции и плагины, чтобы уменьшить поверхность возможной атаки.

Дополнительные инструменты и примеры их применения

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

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

Для задач администрирования нужна учетная запись суперпользователя с полными полномочиями. Под ней можно выполнять настройки серверов, управлять объектами баз данных и обслуживать инфраструктуру. Рядовые учетные записи для таких задач не подойдут. 

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

  • ALL PRIVILEGES — полный доступ ко всем базам и таблицам;

  • *.* — указывает, что привилегии действуют во всей системе;

  • WITH GRANT OPTION — разрешает суперпользователю назначать права другим.

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

Удаление и отзыв прав

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

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

Если сотруднику доступ больше не нужен, удалите его учетную запись:

После удаления пользователь уже не сможет работать в MySQL.

Возможные ошибки и их устранение

Типичные проблемы, их причины и рекомендации по устранению:

Проблема
Причина
Возможное решение
Access denied for user
Пользователь вводит неверный пароль, подключается не с того хоста или не имеет нужных прав
Проверьте наличие пользователя, назначьте корректный пароль и выдайте релевантные привилегии
Ошибка из-за некорректного хоста
Пользователь создавался для одного хоста, а подключается с другого
Создайте пользователя для нужного хоста и назначьте ему релевантные привилегии
Назначенные права не работают
Сервер не обновил кеш привилегий после изменений
Обновите кеш
Недостаточно прав для изменения данных
Пользователю назначены только права на чтение, а изменения он вносить не может
Выдайте точечные права INSERT, UPDATE и DELETE в нужной базе данных или таблице
Требование сменить пароль
Аккаунт использует временный пароль. Либо пароль нормальный, но его уже нужно менять согласно требованиям парольной политики
Задайте новый постоянный пароль с помощью команды ALTER USER
Ошибка при отзыве прав
Привилегии, которые вы хотели отозвать, не совпадают с реальными правами пользователя
Выведите список действующих привилегий и отзовите все ненужные права
Клиент не поддерживает плагин аутентификации
Применяется устаревший клиент
Переключите пользователя на плагин mysql_native_password
Нет доступа к нужной базе
Привилегии назначены на другой объект или не назначены вообще
Проверьте права и выдайте доступ к конкретной базе или таблице

Заключение

Управление пользователями в MySQL— это постоянная работа администратора баз данных, которая начинается с правильных паролей, принципа минимальных привилегий и регулярного аудита доступа. Эти фундаментальные принципы безопасности применимы ко всем современным СУБД, включая PostgreSQL, где вместо CREATE USER используется CREATE ROLE с аналогичной системой GRANT привилегий. 

Управляемые базы данных PostgreSQL®
Управляемые базы данных PostgreSQL®
Используйте удобный интерфейс для создания, управления и мониторинга кластеров баз данных.
Узнать больше

В сервисе Cloud.ru Evolution Managed PostgreSQL® все современные практики уже встроены в готовые кластеры с автоматическим резервным копированием, Point-in-Time Recovery, встроенным мониторингом загрузки CPU/RAM/IO и возможностью масштабирования vCPU и дискового пространства NVMe в пару кликов при SLA доступности 99,7%. Для тестирования доступен бесплатный тариф с 2 vCPU, 4 ГБ RAM и 30 ГБ NVMe.

Продукты из этой статьи:
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
12 января 2026

Вам может понравиться