Gérer les permissions des utilisateurs MySQL

MySQLMySQLBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à gérer les permissions des utilisateurs dans une base de données MySQL. Plus précisément, vous allez créer un nouvel utilisateur local nommé "Rong" et lui accorder l'accès à la base de données performance_schema.

👀 Aperçu

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)

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment démarrer le serveur MySQL et vous connecter au terminal MySQL
  • Comment créer un nouvel utilisateur local avec un mot de passe spécifique
  • Comment accorder à un utilisateur l'accès à une base de données spécifique et à ses tables

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Gérer les comptes utilisateurs et les permissions dans une base de données MySQL
  • Comprendre le processus d'octroi et de révocation d'accès à la base de données pour les utilisateurs
  • Appliquer ces compétences pour configurer les permissions des utilisateurs dans vos propres applications basées sur MySQL

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/TransactionManagementandSecurityGroup(["Transaction Management and Security"]) 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/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{{"Gérer les permissions des utilisateurs MySQL"}} mysql/select -.-> lab-301430{{"Gérer les permissions des utilisateurs MySQL"}} mysql/source -.-> lab-301430{{"Gérer les permissions des utilisateurs MySQL"}} mysql/user -.-> lab-301430{{"Gérer les permissions des utilisateurs MySQL"}} mysql/identified_by -.-> lab-301430{{"Gérer les permissions des utilisateurs MySQL"}} mysql/grant_permission -.-> lab-301430{{"Gérer les permissions des utilisateurs MySQL"}} mysql/show_status -.-> lab-301430{{"Gérer les permissions des utilisateurs MySQL"}} mysql/mysqladmin -.-> lab-301430{{"Gérer les permissions des utilisateurs MySQL"}} end

Démarrer MySQL et vous connecter

Dans cette étape, vous allez apprendre à démarrer le serveur MySQL et à vous connecter au terminal MySQL.

  1. Ouvrez un terminal sur votre système.

  2. Exécutez la commande suivante pour démarrer le service MySQL :

    sudo /etc/init.d/mysql start
  3. Connectez-vous au terminal MySQL :

    mysql -uroot

    Vous devriez maintenant être dans le terminal MySQL, où vous pouvez entrer des commandes MySQL.

Créer un utilisateur local

Dans cette étape, vous allez apprendre à créer un nouvel utilisateur local nommé "Rong" avec le mot de passe "123456".

  1. Créez le fichier manUser.sql dans le répertoire ~/project.

  2. Ajoutez le code suivant au fichier pour créer l'utilisateur :

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

    Cela crée un nouvel utilisateur nommé "Rong" avec le mot de passe "123456" et permet à l'utilisateur de se connecter à partir de la machine locale (localhost).

Accorder l'accès à la performance_schema

Dans cette étape, vous allez apprendre à accorder à l'utilisateur "Rong" l'accès à la base de données performance_schema.

  1. Ouvrez le fichier manUser.sql.

  2. Accordez les permissions nécessaires après le code ajouté dans l'étape précédente :

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

    Cela accorde à l'utilisateur "Rong" la permission de lecture (SELECT) sur toutes les tables de la base de données performance_schema.

  3. Enfin, rafraîchissez les privilèges pour rendre les modifications effectives :

    FLUSH PRIVILEGES;

Vérifier la solution

  1. Exécutez le script SQL dans l'invite MySQL :
SOURCE /home/labex/project/manUser.sql;
  1. Vérifiez les résultats en exécutant la commande suivante dans le terminal MySQL :
SHOW GRANTS FOR Rong@localhost;

Cela devrait afficher les autorisations de l'utilisateur "Rong", y compris la permission de lecture (SELECT) sur la base de données 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)
✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.