MySQL, возможно, является одной из знаменитых и широко используемых систем управления базами данных с открытым исходным кодом.
Это предпочтительная система управления реляционными базами данных в большинстве веб-хостинговых компаний и других облачных провайдеров.
В этом руководстве мы рассмотрим, как создавать учетные записи пользователей MySQL и предоставлять им привилегии, позволяющие получать доступ к созданным базам данных и управлять ими.
Предпосылки
Прежде чем начать, в руководстве предполагается, что вы уже установили экземпляр базы данных MySQL или MariaDB, который является форком MySQL в вашей системе.
Мы уже показывали, как установить MySQL 8:
Как установить последний MySQL 8.0 на RHEL / CentOS и Fedora
Доступ к оболочке MySQL
После установки и защиты MySQL или MariaDB вы можете получить доступ к оболочке, выполнив команду
$ mysql -u root -p
Как создать пользователя в MySQL
Чтобы добавить пользователя в MYSQL, используйте команду mysql create user, как показано ниже:
CREATE USER 'itsecforu_user'@'localhost' IDENTIFIED BY 'P@ssword123';
Пользователь MySQL состоит из 2 разделов: имя пользователя и имя хоста.
Из приведенной выше команды имя пользователя – itsecforu_user, а имя хоста – localhost.
Раздел hostname указывает, что пользователь itsecforu_user может подключаться к MySQL только локально, то есть с сервера, на котором размещается MySQL.
Чтобы предоставить доступ из внешней хост-системы, замените localhost IP-адресом удаленного хоста.
Например, чтобы предоставить доступ из хост-системы с IP-адресом «172.16.10.10», выполните:
CREATE USER 'itsecforu_user'@'172.16.10.10' IDENTIFIED BY 'P@ssword123';
CREATE USER 'itsecforu_user'@'%' IDENTIFIED BY 'P@ssword123';
Предоставление привилегий пользователю MySQL
Когда пользователь создан, вы можете назначить определенные привилегии ядру базы данных.
Эти привилегии предоставляют пользователям доступ к базам данных и позволяют им вносить некоторые изменения.
В MySQL существует множество привилегий, которые могут быть назначены пользователю.
В этом руководстве, однако, мы пролили свет на наиболее часто используемые привилегии:
SELECT: позволяет пользователю читать всю базу данных
UPDATE: позволяет пользователю обновлять строки в таблице
INSERT: позволяет пользователю вставлять строки в данную таблицу
DELETE: Предоставляет разрешение на использование для удаления строк в данной таблице
CREATE: позволяет пользователю создавать базы данных и таблицы
DROP: предоставляет пользователю разрешение на удаление всей базы данных и таблиц.
Чтобы предоставить пользователю определенные привилегии для доступа к базе данных, используйте синтаксис, показанный ниже:
GRANT privilege1, privilege2 ON database_name.* TO 'database_user'@'localhost';
Например:
GRANT SELECT, INSERT, ON database_name.* TO database_user@'localhost';
Как предоставить частичные привилегии?
Чтобы предоставить все привилегии конкретному пользователю для определенной таблицы в базе данных, введите команду:
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost
Отображение привилегий учетной записи пользователя
После того, как пользователь был создан и ему назначены привилегии для баз данных, вы можете легко проверить и подтвердить привилегии, предоставленные пользователю, используя команды SHOW GRANTS, как показано ниже:
SHOW GRANTS FOR 'database_user'@'localhost';
Отзыв привилегий у пользователя MySQL
Кроме того, можно отозвать одну или несколько привилегий у пользователя MySQL.
Синтаксис почти такой же, как при предоставлении пользовательских привилегий.
REVOKE ALL PRIVILEGES ON database_name.* FROM 'database_user'@'localhost';
Как удалить существующего пользователя MySQL
Чтобы удалить пользователя MySQL, запустите команду DROP, как показано ниже:
DROP USER 'database_user'@'localhost';
Заключение
В этом руководстве рассматриваются основные концепции создания и управления пользователями MySQL путем назначения и отзыва привилегий.
Мы надеемся, что вы можете легко создавать учетные записи пользователей MySQL и управлять привилегиями и пользователями.