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

Описание процедуры назначения прав для пользователей MySQL

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

Базы данных MySQL

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

Все данные хранятся в логически связанных таблицах, к которым доступ осуществляется с помощью языка запросов SQL. MySQL является свободно распространяемой системой, поэтому использовать её можно бесплатно. Кроме того, это достаточно быстрая, надежная и простая в использовании СУБД, подходящая для большинства проектов средней сложности.

file

Права пользователей 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 — разрешает создавать процедуры, представляющие собой набор SQL-команд.
ALTER ROUTINE — позволяет изменять созданные процедуры.
EXECUTE — разрешает выполнение готовых процедур.
FILE — предоставляет доступ к файлам на сервере, которые доступны системе MySQL, и возможность создавать файлы в директориях с правами записи MySQL.

Привилегии административного уровня:

CREATE TABLESPACE (admin) — создание, изменение и удаление логических пространств таблиц для оптимизации хранения данных.
CREATE USER (admin) — создание, изменение и удаление пользователей MySQL.
PROCESS (admin) — доступ к информации о выполняющихся потоках сервера.
PROXY (admin) — возможность входа под другим пользователем для проверки прав доступа.
RELOAD (admin) — использование команды FLUSH для очистки кеша MySQL.
REPLICATION CLIENT (admin) — выполнение операций SHOW MASTER STATUS, SHOW SLAVE STATUS и SHOW BINARY LOG.
REPLICATION SLAVE (admin) — необходима для ведомых серверов, чтобы получать обновления от ведущего сервера.
SHOW DATABASES (admin) — просмотр всех баз данных на сервере.
SHUTDOWN (admin) — позволяет завершать работу MySQL сервера.
SUPER (admin) — даёт множество прав, включая завершение процессов других пользователей, изменение глобальных системных переменных, управление логированием и репликацией.
ALL (admin) — предоставляет все доступные привилегии, кроме GRANT OPTION.

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

Создание нового пользователя:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';  

По умолчанию пользователь newuser не имеет прав на работу с базами данных.

Назначение всех привилегий пользователю:

GRANT ALL PRIVILEGES ON _._ TO 'newuser'@'localhost';  

Звездочки обозначают все базы данных и таблицы. Эта команда позволяет пользователю полностью управлять всеми базами и таблицами.

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

FLUSH PRIVILEGES;

Пример назначения конкретных прав:

GRANT [тип прав] ON [название базы].[название таблицы] TO '[имя пользователя]'@'localhost';  

Для всех баз и таблиц используйте звездочку (*).

Лишение прав пользователя:

REVOKE [тип прав] ON [название базы].[название таблицы] FROM '[имя пользователя]'@'localhost';  

Удаление пользователя:

DROP USER 'demo'@'localhost';  

Для проверки учетной записи: выйдите из MySQL:

quit

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

mysql -u [имя пользователя] -p  
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам