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

12 set 2022 2 min di lettura
Как создавать учетные записи пользователей MySQL и предоставлять привилегии в Linux
Indice dei contenuti

Введение

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

В этом руководстве описывается, как создавать учетные записи пользователей MySQL и предоставлять привилегии.

До начала

Мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB.

Все команды выполняются в оболочке MySQL от имени пользователя root или администратора. Минимальные привилегии, необходимые для создания учетных записей пользователей и определения их привилегий, — это CREATE USER и GRANT.

Чтобы получить доступ к оболочке MySQL, введите следующую команду и введите пароль пользователя root MySQL при появлении запроса:

mysql -u root -p

Если вы не установили пароль для вашего root-пользователя MySQL, вы можете опустить флаг -p.

Создайте новую учетную запись пользователя MySQL

Учетная запись пользователя в MySQL состоит из имени пользователя и части имени хоста.

Чтобы создать новую учетную запись пользователя MySQL, выполните следующую команду:

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

Замените значение newuser желаемым новым именем пользователя, а значение user_password паролем пользователя.

В приведенной выше команде часть имени хоста имеет значение localhost, что означает, что пользователь сможет подключиться к серверу MySQL только с локального хоста (то есть из системы, в которой работает MySQL Server).

Чтобы предоставить доступ с другого хоста, измените часть имени хоста ( localhost ) на IP-адрес удаленного компьютера. Например, чтобы предоставить доступ с машины с IP 10.8.0.5, вы должны запустить:

CREATE USER 'newuser'@'10.8.0.5' IDENTIFIED BY 'user_password';

Чтобы создать пользователя, который может подключаться с любого хоста, используйте подстановочный знак '%' в качестве части хоста:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';

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

Существует несколько типов привилегий, которые могут быть предоставлены учетной записи пользователя. Вы можете найти полный список поддерживаемых MySQL привилегий здесь.

Наиболее часто используемые привилегии:

  • ALL PRIVILEGES — Предоставляет все привилегии учетной записи пользователя.
  • CREATE — учетной записи пользователя разрешено создавать базы данных и таблицы.
  • DROP — учетная запись пользователя имеет право удалять базы данных и таблицы.
  • DELETE — учетной записи пользователя разрешено удалять строки из определенной таблицы.
  • INSERT — учетная запись пользователя может вставлять строки в определенную таблицу.
  • SELECT — учетной записи пользователя разрешено читать базу данных.
  • UPDATE. Учетной записи пользователя разрешено обновлять строки таблицы.

Чтобы предоставить определенные привилегии учетной записи пользователя, вы можете использовать следующий синтаксис:

GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';

Примеры

Предоставьте все привилегии учетной записи пользователя в определенной базе данных:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Предоставьте все привилегии учетной записи пользователя во всех базах данных:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Предоставьте все привилегии учетной записи пользователя для определенной таблицы из базы данных:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

Предоставьте несколько привилегий учетной записи пользователя в определенной базе данных:

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Просмотр привилегий учетной записи пользователя MySQL

Чтобы найти привилегии, предоставленные определенной учетной записи пользователя MySQL, используйте оператор SHOW GRANTS:

SHOW GRANTS FOR 'database_user'@'localhost';
+---------------------------------------------------------------------------+
 | Grants for database_user@localhost |
 +---------------------------------------------------------------------------+
 | GRANT USAGE ON *.* TO 'database_user'@'localhost' |
 | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' |
 +---------------------------------------------------------------------------+
 2 rows in set (0.00 sec)

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

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

Например, чтобы отозвать все привилегии учетной записи пользователя в определенной базе данных, используйте следующую команду:

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Удалить существующую учетную запись пользователя MySQL

Чтобы удалить учетную запись пользователя MySQL, используйте оператор DROP USER:

DROP USER 'user'@'localhost'

Приведенная выше команда удалит учетную запись пользователя и ее привилегии.

Вывод

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.