Создание пользователя и настройка прав доступа в MySQL
Как создавать пользователей MySQL и управлять их привилегиями.
При работе с выделенным сервером или VPS одной из ключевых задач является организация хранения и управления данными. MySQL — это система управления базами данных, которая позволяет эффективно структурировать информацию и контролировать доступ пользователей. Она подходит как для небольших проектов, так и для более масштабных задач, обеспечивая безопасность, надежность и удобство в работе.
MySQL использует систему пользователей для разграничения доступа к базам данных. Администратор или уполномоченный пользователь может предоставлять другим пользователям полный или ограниченный доступ к конкретным базам и таблицам.
Привилегии MySQL
Привилегии уровня базы данных и таблиц:
CREATE— создание баз данных и таблиц.DROP— удаление баз данных и таблиц.INSERT— добавление строк в таблицы.UPDATE— изменение содержимого строк. Не путать сALTER, которая изменяет структуру таблиц.DELETE— удаление строк из таблиц.ALTER— изменение структуры таблиц; требует привилегийCREATEиINSERT.SELECT— чтение данных из таблиц.GRANT OPTION— назначение и отзыв привилегий у других пользователей (только тех, которыми владеет сам пользователь).LOCK TABLES— блокировка таблиц на время внесения изменений.REFERENCES— создание связей между таблицами через внешние ключи.EVENT— создание, изменение и удаление заданий планировщика.TRIGGER— создание, изменение и удаление триггеров для операцийDELETE,UPDATEиINSERT.INDEX— создание и удаление индексов.CREATE TEMPORARY TABLES— создание временных таблиц на время сессии.CREATE VIEW— создание представлений, агрегирующих данные из других таблиц.SHOW VIEW— просмотр SQL-запроса, на основе которого создано представление.CREATE ROUTINE— создание хранимых процедур.ALTER ROUTINE— изменение хранимых процедур.EXECUTE— выполнение хранимых процедур.FILE— доступ к файлам сервера, доступным MySQL, и создание файлов в директориях с правами записи.
Административные привилегии:
CREATE TABLESPACE— создание, изменение и удаление табличных пространств.CREATE USER— создание, изменение и удаление пользователей MySQL.PROCESS— просмотр информации о выполняющихся потоках сервера.PROXY— вход под другим пользователем для проверки прав доступа.RELOAD— выполнение командыFLUSHдля очистки кэша MySQL.REPLICATION CLIENT— выполнение командSHOW MASTER STATUS,SHOW SLAVE STATUSиSHOW BINARY LOG.REPLICATION SLAVE— получение обновлений от ведущего сервера на ведомых серверах.SHOW DATABASES— просмотр всех баз данных на сервере.SHUTDOWN— завершение работы MySQL-сервера.SUPER— расширенные права: завершение процессов других пользователей, изменение глобальных переменных, управление логированием и репликацией.ALL— все доступные привилегии, кромеGRANT OPTION.
Наши услуги и сервисы
Создание пользователя
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
По умолчанию новый пользователь не имеет прав на работу с базами данных.
Назначение привилегий
Назначить все привилегии на все базы и таблицы:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';
Назначить конкретные привилегии на конкретную базу или таблицу:
GRANT [тип прав] ON [база].[таблица] TO '[пользователь]'@'localhost';
Для всех баз и таблиц используйте * вместо конкретного имени.
После изменения привилегий необходимо их обновить:
FLUSH PRIVILEGES;
Отзыв привилегий
REVOKE [тип прав] ON [база].[таблица] FROM '[пользователь]'@'localhost';
Удаление пользователя
DROP USER 'demo'@'localhost';
Проверка учётной записи
Выйдите из MySQL:
quit
И войдите под новым пользователем:
mysql -u [имя пользователя] -p
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!