В прошлой статье мы рассмотрели несколько самых популярных операционных систем, которые обычно выбирают для установки на VPS серверы. А сегодня мы хотим познако...
Блог компании 3v-Hosting
5 мин.
Создание пользователей и управление ими в MySQL — фундаментальная задача для администраторов баз данных (DBA). Эта задача включает в себя не только создание пользователей, но и назначение соответствующих разрешений для обеспечения безопасности и надлежащего управления базой данных. В этой статье мы подробно рассмотрим все необходимые шаги по созданию нового пользователя и предоставлению разрешений для этого пользователя в MySQL.
Управление пользователями в MySQL включает в себя несколько важных задач, включая создание новых пользователей, установку паролей, а также предоставление или отзыв разрешений. Эти операции необходимы для поддержания безопасности базы данных и обеспечения пользователям соответствующего уровня доступа для выполнения своих задач.
Безопасность. Правильное управление пользователями помогает защитить конфиденциальные данные, обеспечивая доступ только авторизованным пользователям.
Организация: позволяет четко разграничить роли и обязанности между пользователями.
Возможность аудита: отслеживание действий пользователей становится намного проще, когда у каждого пользователя есть уникальная учетная запись.
Прежде чем начать, убедитесь, что у вас есть административный доступ к вашему серверу с установленной БД MySQL. Обычно это означает, что у вас есть доступ к пользователю root или другому пользователю с достаточными привилегиями.
Важно! Пароль пользователя root назначается при установке MySQL на сервер и именно об этой учётной записи мы говорим ниже, а не о root пользователе операционной системы сервера.
Чтобы подключиться к вашему серверу MySQL, используйте следующую команду в своем терминале:
mysql -u root -p
Вам будет предложено ввести пароль root. После успешного входа вы получите доступ к интерфейсу командной строки MySQL.
Оператор CREATE USER используется для создания нового пользователя в MySQL. Вот основной синтаксис:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
Пример
Чтобы создать пользователя с именем newuser и паролем user_password, выполните:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
Эта команда создает пользователя newuser, который может подключаться к серверу MySQL с локального компьютера (localhost).
После создания пользователя следующим шагом будет предоставление необходимых разрешений. Для этой цели используется оператор GRANT.
Чтобы предоставить все привилегии для конкретной базы данных, используйте следующий синтаксис:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
Пример
Чтобы предоставить все права доступа к базе данных testdb пользователю newuser, выполните:
GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'localhost';
Эта команда предоставляет новому пользователю полный доступ к базе данных testdb.
После предоставления разрешений крайне важно применить эти изменения, сбросив привилегии. Это можно сделать с помощью следующей команды:
FLUSH PRIVILEGES;
Чтобы убедиться, что новый пользователь создан и права установлены правильно, вы можете использовать оператор SHOW GRANTS:
SHOW GRANTS FOR 'newuser'@'localhost';
Это отобразит все привилегии, назначенные новому пользователю.
MySQL обеспечивает детальный контроль над разрешениями пользователей. Вот обзор наиболее часто используемых привилегий:
ALL PRIVILEGES: предоставляет все доступные привилегии.
SELECT: позволяет читать данные из таблиц.
INSERT: позволяет вставлять данные в таблицы.
UPDATE: позволяет обновлять существующие данные.
DELETE: позволяет удалить данные.
CREATE: позволяет создавать новые базы данных и таблицы.
DROP: позволяет удалять базы данных и таблицы.
ALTER: позволяет изменять существующие таблицы.
Чтобы предоставить отдельные привилегии, измените оператор GRANT соответствующим образом. Например, чтобы предоставить привилегии SELECT и INSERT в testdb:
GRANT SELECT, INSERT ON testdb.* TO 'newuser'@'localhost';
Если вам нужно отозвать определенные привилегии, используйте оператор REVOKE:
REVOKE privilege_type ON database_name.* FROM 'username'@'host';
Пример
Чтобы отозвать привилегию INSERT у нового пользователя в testdb:
REVOKE INSERT ON testdb.* FROM 'newuser'@'localhost';
Если вам нужен пользователь с глобальными привилегиями, например доступ ко всем базам данных, вы можете использовать следующую команду:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION;
Пример
Чтобы создать пользователя-администратора с глобальными привилегиями и предоставить ему доступ ко всем базам данных в данном инстансе:
CREATE USER 'adminuser'@'localhost' IDENTIFIED BY 'admin_password';
GRANT ALL PRIVILEGES ON *.* TO 'adminuser'@'localhost' WITH GRANT OPTION;
Чтобы разрешить пользователю подключаться с конкретного удаленного хоста, замените localhost на IP-адрес удаленного хоста или используйте %, чтобы разрешить подключения с любого хоста:
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'remote_password';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
Принцип наименьших привилегий: предоставьте каждому пользователю минимально необходимые привилегии.
Надежные пароли. Убедитесь, что у пользователей есть надежные и уникальные пароли.
Регулярные проверки. Периодически проверяйте и проверяйте разрешения пользователей.
Разделение обязанностей: назначайте разные роли разным пользователям для повышения безопасности.
Резервное копирование пользовательских данных. Регулярно создавайте резервные копии учетных записей и привилегий пользователей.
Управление пользователями и их привелегиями в MySQL является первейшей задачей для администраторов баз данных. Выполнив шаги, описанные в этой статье, вы сможете создавать новых пользователей, предоставлять соответствующие разрешения и обеспечивать безопасность и эффективность ваших баз данных MySQL. Всегда придерживайтесь лучших практик и регулярно проверяйте права пользователей для поддержания безопасной среды базы данных.
Ну и конечно - ДЕЛАЙТЕ БЕКАПЫ! :)
Подробно о том, как работают IP-адреса, различия IPv4 и IPv6, публичные и приватные IP, DNS, маршрутизация, безопасность и применение в серверной инфраструктуре...
Ускорение WordPress на уровне Nginx: правильные настройки PHP-FPM, try_files, статика, кеширование, Brotli, защита wp-login и безопасные заголовки для стабильно...
Эффективные стратегии резервного копирования Docker-приложений: как защищать тома, данные и конфигурации, избегая при этом типичных ошибок, а также быстро восст...