Управление правами доступа пользователей MySQL

MySQLMySQLBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

👀 Предварительный просмотр

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

🎯 Задачи

В этом проекте вы научитесь:

  • Как запустить сервер MySQL и войти в терминал MySQL
  • Как создать нового локального пользователя с заданным паролем
  • Как предоставить пользователю доступ к определенной базе данных и ее таблицам

🏆 Достижения

После завершения этого проекта вы сможете:

  • Управлять учетными записями пользователей и правами доступа в базе данных MySQL
  • Разбираться в процессе предоставления и отзыва доступа к базе данных для пользователей
  • Применить эти навыки для настройки прав доступа пользователей в своих собственных приложениях, основанных на MySQL

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/SystemManagementToolsGroup(["System Management Tools"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql(("MySQL")) -.-> mysql/TransactionManagementandSecurityGroup(["Transaction Management and Security"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/user("User Info Function") mysql/TransactionManagementandSecurityGroup -.-> mysql/identified_by("User Authentication") mysql/TransactionManagementandSecurityGroup -.-> mysql/grant_permission("Permission Granting") mysql/SystemManagementToolsGroup -.-> mysql/show_status("Status Overview") mysql/SystemManagementToolsGroup -.-> mysql/mysqladmin("Admin Utility") subgraph Lab Skills mysql/use_database -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} mysql/select -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} mysql/source -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} mysql/user -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} mysql/identified_by -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} mysql/grant_permission -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} mysql/show_status -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} mysql/mysqladmin -.-> lab-301430{{"Управление правами доступа пользователей MySQL"}} end

Запустить MySQL и войти

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

  1. Откройте терминал на вашей системе.

  2. Запустите следующую команду для запуска службы MySQL:

    sudo /etc/init.d/mysql start
  3. Войдите в терминал MySQL:

    mysql -uroot

    Теперь вы должны находиться в терминале MySQL, где можно вводить команды MySQL.

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

В этом шаге вы научитесь создавать нового локального пользователя по имени "Rong" с паролем "123456".

  1. Создайте файл manUser.sql в директории ~/project.

  2. Добавьте в файл следующий код для создания пользователя:

    CREATE USER 'Rong'@'localhost' IDENTIFIED BY '123456';

    Это создает нового пользователя по имени "Rong" с паролем "123456" и позволяет пользователю входить с локальной машины (localhost).

Предоставить доступ к performance_schema

В этом шаге вы научитесь предоставлять пользователю "Rong" доступ к базе данных performance_schema.

  1. Откройте файл manUser.sql.

  2. Предоставьте необходимые права после кода, добавленного на предыдущем шаге:

    GRANT SELECT ON performance_schema.* TO 'Rong'@'localhost';

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

  3. Наконец, сбросьте привилегии и примените изменения:

    FLUSH PRIVILEGES;

Проверить решение

  1. Запустите SQL-скрипт в MySQL-подсказке:
SOURCE /home/labex/project/manUser.sql;
  1. Проверьте результаты, выполнив следующую команду в терминале MySQL:
SHOW GRANTS FOR Rong@localhost;

В этом случае должны быть отображены права доступа для пользователя "Rong", включая право на выборку в базе данных performance_schema.

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.