Yandex
Обновить настройки cookies

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

Что такое MySQL?

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

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

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

Создание нового пользователя MySQL выполняется внутри оболочки MySQL, зайти в которую из консоли можно командой:
mysql -u root -pДалее потребуется ввести или вставить пароль пользователя root.

SQL-запрос (или команда) для создания пользователя выглядит следующим образом (уже внутри оболочки MySQL):
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  • newuser - имя пользователя;
  • localhost - имя хоста, может быть также задано в формате IP адреса;
  • password - пароль этого пользователя.
Как результат мы получаем пользователя без каких либо прав на выполнение действий. Более того, пользователь newuser даже не сможет авторизоваться в оболочке MySQL.

Далее необходимо задать права доступа для этого пользователя. Разрешить все, можно простой командой:
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';Таким образом пользователь получает права читать, редактировать, запускать и выполнять любые задачи для всех баз данных и таблиц.
Первая звездочка тут указывает на права доступа к всем базам, вторая - всем таблицам.

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

После задания прав для MySQL пользователя, необходимо обязательно сбросить все привилегии для активации новых прав, что можно выполнить командой:
FLUSH PRIVILEGES;

Настройка прав пользователя MySQL

Пользователям могут быть предоставлены следующие права:
  • ALL PRIVILEGES — полные права на все (описано было выше);
  • CREATE — пользователь может создавать новые таблицы и/илибазы данных;
  • DROP — пользователь может удалять таблицы и/или базы данных;
  • DELETE — пользователь может удалять строки из указанных таблиц (или всех таблиц);
  • INSERT — пользователь может вставлять строки в указанные таблицы (или все таблицы);
  • SELECT — пользователь может делать выборку для чтения данных из указанных таблиц (или всех таблиц);
  • UPDATE — пользователю может обновлять строки указанных таблиц (или всех таблиц);
  • GRANT OPTION — пользователь может управлять правами других пользователей.
Команда для задания нужных прав для пользователя MySQL будет иметь следующий вид:
GRANT permission ON database.table TO 'newuser'@'localhost';В этой команде:
  • permission - нужно заменить на соответствующие права, например SELECT;
  • database - имя базы данных. Можно указать звездочку при доступе к всем базам;
  • table - имя таблицы. Можно указать звездочку при доступе к всем таблицам.
При каждом изменении прав необходимо повторно сбросить привилегии, как было описано выше в этой статье.

Чтобы отозвать какие-то права используется подобная команда, только GRANT нужно заменить на REVOKE, а TO заменить на FROM:
REVOKE permission ON database.table FROM 'newuser'@'localhost';Посмотреть текущие права можно SQL-командой:
SHOW GRANTS FOR 'newuser'@'localhost';Удалить существующего пользователя можно следующей командой:
DROP USER 'newuser'@'localhost';Для выхода из оболочки MySQL используем команду:
quit;

Заключение

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

И не забываем при работе в оболочке MySQL каждую команду заканчивать точкой с запятой.
19 Nov 2024, 17:53:27