img-bg
Как создать Нового пользователя и предоставить права в MySQL
VPS/VDS

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

Как создать нового пользователя

Давайте начнем с создания нового пользователя в оболочке MySQL:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; 
Примечание: При добавлении пользователей в оболочку MySQL в этом руководстве мы будем указывать хост пользователя как localhost, а не IP - адрес сервера. localhost-это имя хоста, которое означает “этот компьютер”, и MySQL специально обрабатывает это конкретное имя хоста: когда пользователь с этим хостом входит в MySQL, он пытается подключиться к локальному серверу с помощью файла сокета Unix. Таким образом, localhost обычно используется, когда вы планируете подключиться путем SSHing на свой сервер или когда вы запускаете локальный клиент MySQL для подключения к локальному серверу MySQL.

На данный момент newuser не имеет никаких прав на какие-либо действия с базами данных. На самом деле, даже если newuser попытается войти в систему (с паролем), он не сможет авторизоваться в оболочке MySQL.
Поэтому первое, что нужно сделать, - это предоставить пользователю доступ к необходимой ему информации.
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Звездочка в этой команде относятся к базе данных и таблице (соответственно), к которым они могут получить доступ — эта конкретная команда позволяет пользователю читать, редактировать и выполнять все задачи во всех базах данных и таблицах.
Обратите внимание, что в этом примере мы предоставляем newuser полный доступ ко всему, что находится в нашей базе данных. Хотя это полезно для объяснения некоторых концепций MySQL, это может быть непрактично для большинства случаев использования и может поставить безопасность вашей базы данных под высокий риск.
После того как вы завершите работу с правами, которые хотите настроить для новых пользователей, обязательно перезагрузите все привилегии.
FLUSH PRIVILEGES; 
Теперь ваши изменения вступят в силу.

Как предоставить различные права пользователям

Вот краткий список других распространенных возможных прав, которыми могут пользоваться пользователи.
  • ALL PRIVILEGES - как мы видели ранее, это позволит пользователю MySQL получить полный доступ к назначенной базе данных (или, если база данных не выбрана, глобальный доступ по всей системе)
  • CREATE - позволяет им создавать новые таблицы или базы данных
  • DROP - позволяет им удалять таблицы или базы данных
  • DELETE - позволяет им удалять строки из таблиц.
  • INSERT - позволяет им вставлять строки в таблицы
  • SELECT - позволяет им использовать команду SELECT для чтения баз данных.
  • UPDATE - разрешить им обновлять строки таблицы
  • GRANT OPTION - позволяет им предоставлять или удалять привилегии других пользователей.
Чтобы предоставить конкретному пользователю права, вы можете использовать эту команду:
GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';
Если вы хотите предоставить им доступ к любой базе данных или к любой таблице, обязательно поставьте звездочку (*) вместо имени базы данных или имени таблицы.
Каждый раз, когда вы обновляете или изменяете разрешение, обязательно используйте команду Flush Privileges.
Если вам нужно отозвать разрешение, структура почти идентична его предоставлению:
REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost'; 
Обратите внимание, что при отмене разрешений синтаксис требует, чтобы вы использовали FROM, а не TO, как мы использовали при предоставлении разрешений.
Вы можете просмотреть текущие разрешения пользователя, выполнив следующие действия:
SHOW GRANTS FOR 'username'@'localhost'; 
Точно так же, как вы можете удалить базы данных с помощью DROP, вы можете использовать DROP для полного удаления пользователя:
DROP USER 'username'@'localhost'; 
Чтобы протестировать нового пользователя, выйдите из системы, набрав:
quit 
и снова войдите в систему с помощью этой команды в терминале:
mysql -u [username] -p 

Заключение

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