MySQL est un système de gestion de base de données populaire et largement utilisé qui stocke et organise les données et permet aux utilisateurs de les récupérer. Il est livré avec une vaste gamme d'options qui accordent aux utilisateurs certaines autorisations sur les tables et les bases de données.
Dans ce guide, vous apprendrez à créer un nouvel utilisateur et à accorder des autorisations dans MySQL base de données.
Comment créer un nouvel utilisateur dans MySQL
Pour créer un nouvel utilisateur, connectez-vous d'abord au shell MySQL.
$ sudo mysql -u root -p
Fournissez le mot de passe sudo suivi du mot de passe fourni lors de la configuration de la base de données MySQL et appuyez sur ENTER . Par la suite, vous obtiendrez cette invite.
Pour créer un nouvel utilisateur, utilisez la syntaxe ci-dessous :
MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Par exemple, pour créer un nouvel utilisateur appelé "tecmint ' dans la base de données, appelez la commande :
MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';
Quelques points à garder à l'esprit
Lors de l'ajout d'un utilisateur localement, c'est-à-dire sur le système sur lequel vous avez installé MySQL , l'hôte de l'utilisateur est spécifié comme localhost , et non l'adresse IP. Le mot-clé ‘localhost ' se traduit par 'cet ordinateur ' et MySQL le traite de manière unique. Fondamentalement, localhost est utilisé par le client mysql pour établir une connexion au serveur de base de données MySQL installé localement.
Jusqu'à présent, le tecmint l'utilisateur n'a aucune autorisation pour interagir avec les bases de données. En fait, l'utilisateur ne peut même pas accéder au shell MySQL.
Pour accorder à l'utilisateur un accès complet à toutes les bases de données, y compris les tables, exécutez.
MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';
Dans la commande ci-dessus, les astérisques pointent respectivement vers la base de données et la table auxquelles l'utilisateur peut accéder. Il accorde à l'utilisateur tous les droits sur la base de données - lire , écrire , modifier, et exécuter y compris l'exécution de toutes les tâches sur d'autres bases de données et tables également.
Jusqu'à présent, nous avons accordé à l'utilisateur un accès complet à la base de données. Bien que cela soit pratique pour expliquer les concepts de MySQL, ce n'est généralement pas recommandé car cela pourrait poser un risque pour la sécurité de vos bases de données. Pensez à ce qui pourrait arriver si un pirate s'emparait du mot de passe de l'utilisateur. Nous allons continuer et discuter de la façon d'attribuer des autorisations spécifiques dans la section suivante.
Lorsque vous avez fini d'attribuer des autorisations à l'utilisateur, rechargez tous les privilèges comme indiqué pour que les modifications prennent effet.
MariaDB [none]> FLUSH PRIVILEGES
Comment accorder différentes autorisations d'utilisateur
Voici une ventilation des autorisations possibles que vous pouvez accorder aux utilisateurs :
- TOUS LES PRIVILÈGES – Comme vu précédemment, cela accorde à un utilisateur MySQL un accès complet à une base de données spécifique.
- CRÉER – Permet aux utilisateurs de créer de nouvelles bases de données ou tables.
- DÉPOSER – Permet aux utilisateurs de supprimer des bases de données ou des utilisateurs.
- INSÉRER – Permet aux utilisateurs d'insérer des lignes dans les tableaux.
- SUPPRIMER – Permet aux utilisateurs de supprimer des lignes des tables.
- SÉLECTIONNER – avec l'autorisation "SELECT", les utilisateurs peuvent lire le contenu d'un tableau.
- MISE À JOUR – Permet aux utilisateurs de mettre à jour les lignes d'un tableau.
- OPTION DE SUBVENTION – Les utilisateurs peuvent accorder ou retirer les privilèges d'autres utilisateurs.
Pour accorder une autorisation utilisateur spécifique, utilisez la syntaxe :
MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';
De plus, vous pouvez attribuer des autorisations à toutes les tables d'une base de données avec un seul astérisque, comme indiqué :
MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';
Par exemple, pour attribuer SELECT autorisations pour 'tecmint ' utilisateur sur toutes les tables de la base de données testdb , exécutez la commande.
MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';
Videz ensuite les privilèges pour que les modifications prennent effet.
MariaDB [none]> FLUSH PRIVILEGES;
De plus, vous pouvez attribuer plusieurs autorisations à la fois en les séparant par une virgule, comme indiqué.
MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';
Comment révoquer les autorisations MySQL
Pour révoquer les autorisations d'un utilisateur, utilisez la syntaxe :
MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';
Par exemple, pour révoquer INSERT autorisations de l'utilisateur 'tecmint ', exécutez la commande.
MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost'; MariaDB [none]> FLUSH PRIVILEGES
Pour avoir un aperçu des autorisations actuelles d'un utilisateur, exécutez :
MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';
À partir de la sortie ci-dessous, nous pouvons voir que le INSERT l'autorisation a été supprimée du "tecmint ' utilisateur ne laissant que SELECT et MISE À JOUR droits sur testdb base de données.
Pour tester la connexion au shell MySQL avec le nouvel utilisateur, déconnectez-vous d'abord.
MariaDB [none]> quit;
Reconnectez-vous ensuite.
$ sudo mysql -u tecmint -p
Fournissez le mot de passe de l'utilisateur et appuyez sur ENTER pour accéder au shell.
Pour supprimer un utilisateur, utilisez le DROP commande, comme vous le feriez lors de la suppression d'une base de données.
MariaDB [none]> DROP USER 'username'@'localhost';
Vous aimerez peut-être également lire les articles suivants liés à MySQL :
- Conseils utiles pour résoudre les erreurs courantes dans MySQL
- Mytop – Un outil utile pour surveiller les performances de MySQL/MariaDB sous Linux
- Comment changer le port MySQL/MariaDB par défaut sous Linux
- Comment réinitialiser le mot de passe racine MySQL ou MariaDB sous Linux
Conclusion
Avec un peu de chance, vous pouvez désormais créer des utilisateurs dans vos serveurs de base de données MySQL et attribuer ou révoquer confortablement des autorisations.