Создание пользователя MySQL
-- Создать пользователя для подключения только с localhost
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
-- Для подключения с любого IP
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
-- Для конкретного IP
CREATE USER 'myuser'@'192.168.1.100' IDENTIFIED BY 'StrongPassword123!';Выдача привилегий (GRANT)
-- Все права на одну базу данных
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
-- Только чтение
GRANT SELECT ON mydb.* TO 'readonly_user'@'localhost';
-- Чтение + запись
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'localhost';
-- На конкретную таблицу
GRANT SELECT, INSERT ON mydb.orders TO 'reports_user'@'localhost';
-- Суперпользователь (все права на все БД)
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
-- Применить изменения
FLUSH PRIVILEGES;Просмотр привилегий
-- Привилегии конкретного пользователя
SHOW GRANTS FOR 'myuser'@'localhost';
-- Список всех пользователей
SELECT User, Host FROM mysql.user;
-- Текущий пользователь
SHOW GRANTS;Отзыв привилегий (REVOKE)
-- Отозвать конкретные права
REVOKE INSERT, UPDATE, DELETE ON mydb.* FROM 'myuser'@'localhost';
-- Отозвать все права
REVOKE ALL PRIVILEGES ON mydb.* FROM 'myuser'@'localhost';
FLUSH PRIVILEGES;Смена пароля пользователя
-- MySQL 5.7 / MariaDB
SET PASSWORD FOR 'myuser'@'localhost' = PASSWORD('NewPassword456!');
-- MySQL 8.0+
ALTER USER 'myuser'@'localhost' IDENTIFIED BY 'NewPassword456!';
FLUSH PRIVILEGES;Удаление пользователя
DROP USER 'myuser'@'localhost';
FLUSH PRIVILEGES;Создание пользователя для веб-приложения
-- Создать БД и пользователя для нового сайта
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'SecurePass789!';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
CREATE TEMPORARY TABLES, LOCK TABLES ON myapp_db.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;Принцип минимальных привилегий: давайте пользователям только те права, которые им действительно нужны. Для веб-приложений: SELECT, INSERT, UPDATE, DELETE. Без CREATE, DROP, ALTER — если это не нужно приложению.