Gestion des permissions
Gestion des permissions dans MariaDB (ou MySQL).
MariaDB, comme de nombreux systèmes de gestion de base de données, utilise un système de permissions pour contrôler l'accès aux bases de données et aux tables.
Dans cette séance, nous allons apprendre à gérer les permissions dans MariaDB.
Ces commandes vous permettront de gérer efficacement les mots de passe des utilisateurs dans votre base de données MariaDB.
Notions théoriques
1. Création d'un utilisateur
Pour créer un nouvel utilisateur, nous utilisons la commande :
CREATE USER 'nom_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';
.
2. Donner des permissions
Pour donner des permissions à un utilisateur, nous utilisons la commande :
GRANT type_de_permission ON nom_de_la_base.* TO 'nom_utilisateur'@'localhost';
.
Afin de garantir que les nouvelles permissions sont bien prises en compte par le serveur, nous utilisons la commande :
FLUSH PRIVILEGES;
.
Le type_de_permission
peut être :
ALL PRIVILEGES
pour toutes les permissions,- ou des permissions spécifiques comme
SELECT
,INSERT
,UPDATE
,DELETE
, etc.
3. Révocation des permissions
Pour révoquer des permissions d'un utilisateur, nous utilisons la commande :
REVOKE type_de_permission ON nom_de_la_base.* FROM 'nom_utilisateur'@'localhost';
.
4. Suppression d'un utilisateur
Pour supprimer un utilisateur, nous utilisons la commande :
DROP USER 'nom_utilisateur'@'localhost';
.
5. Vérification des permissions
Pour vérifier les permissions d'un utilisateur, nous utilisons la commande :
SHOW GRANTS FOR 'nom_utilisateur'@'localhost';
.
6. Connexion au serveur SQL
Connexion au serveur SQL à partir de Windows
ou
7. Changement de mot de passe
Changement de mot de passe d'un utilisateur
Pour modifier le mot de passe d'un utilisateur existant dans MariaDB, vous pouvez utiliser l'une des méthodes suivantes :
-
Utilisation de la commande
SET PASSWORD
:Vous pouvez changer le mot de passe d'un utilisateur en utilisant la commande suivante :
SET PASSWORD FOR 'nom_utilisateur'@'localhost' = PASSWORD('nouveau_mot_de_passe');
-
Utilisation de la commande
ALTER USER
:Une autre méthode consiste à utiliser la commande
ALTER USER
:ALTER USER 'nom_utilisateur'@'localhost' IDENTIFIED BY 'nouveau_mot_de_passe';
Remarques :
- Assurez-vous d'avoir les permissions nécessaires pour changer le mot de passe d'un utilisateur.
- Après avoir changé le mot de passe, il n'est pas nécessaire d'exécuter
FLUSH PRIVILEGES
, car les changements sont immédiatement pris en compte. - Pour des raisons de sécurité, choisissez toujours un mot de passe fort et unique.
Exemple pratique
Supposons que nous ayons une base de données utilisateurs
et que nous voulions créer un nouvel utilisateur admin
avec toutes les permissions sur cette base de données.
Ensuite, nous révoquerons la permission
DELETE
de cet utilisateur et vérifierons ses permissions.
# Connexion à MariaDB
sudo mysql
# ou
mysql -u root -p
# Création de l'utilisateur 'admin'
CREATE USER 'admin'@'localhost' IDENTIFIED BY '1mot2Passe+QueTresSécurisé';
# Donner toutes les permissions à 'admin' sur la base de données 'utilisateurs'
GRANT ALL PRIVILEGES ON utilisateurs.* TO 'admin'@'localhost';
FLUSH PRIVILEGES;
# Vérification des permissions de 'admin'
SHOW GRANTS FOR 'admin'@'localhost';
# Révocation de la permission 'DELETE' de 'admin'
REVOKE DELETE ON utilisateurs.* FROM 'admin'@'localhost';
# Vérification des permissions de 'admin' après la révocation
SHOW GRANTS FOR 'admin'@'localhost';
Dans MySQL/MariaDB, pour afficher la liste des utilisateurs, on peut utiliser la requête suivante :
SELECT user, host FROM mysql.user;
Cette requête affiche les colonnes
user
ethost
de la tableuser
de la base de donnéesmysql
.
Test de mémorisation/compréhension
Quand on ajoute WITH GRANT OPTIONS
à la fin de la commande d'attribution des droits,
cela donne la permission à l'utilisateurs de donner des droits à d'autres utilisateurs.
Attention cela lui permet aussi de révoquer des droits.
Par exemple :
GRANT ALL PRIVILEGES ON nom_de_la_base.* TO 'nom_utilisateur'@'localhost' WITH GRANT OPTIONS;
TP pour réfléchir et résoudre des problèmes
Objectif du TP : À la fin de ce TP, vous devriez être capable de créer un utilisateur dans MariaDB, lui donner des permissions, révoquer des permissions et vérifier ses permissions.
Étapes du TP :
-
Connectez-vous à MariaDB en tant qu'utilisateur
root
. -
Créez un nouvel utilisateur nommé
etudiant
avec le mot de passe1mot2Passe+QueTresSécurisé
. -
Donnez à l'utilisateur
etudiant
toutes les permissions sur la base de donnéesecole
. -
Vérifiez les permissions de l'utilisateur
etudiant
.Si vous avez suivi correctement toutes les étapes, vous devriez voir les permissions de l'utilisateur
etudiant
. -
Déconnectez vous de MariaDB :
exit
-
Connectez-vous à MariaDB en tant qu'utilisateur
etudiant
(mot de passe =1mot2Passe+QueTresSécurisé
) :mysql -u etudiant -p
L'indication du 'host' n'est pas nécessaire, par défaut ce sera
localhost
. -
Utilisez la base de données
ecole
-
Insérez les données suivantes dans la table
etudiants
:nom
: Nouri,prenom
: Adel,email
: adel.nouri@example.comnom
: Bessis,prenom
: Nadia,email
: nadia.bessis@example.com
Si vous avez suivi correctement toutes les étapes, l'utilisateur
etudiant
doit avoir les permissions d'insérer ces données. -
Affichez toutes les données de la table
etudiants
.Si vous avez suivi correctement toutes les étapes, vous devriez voir les données insérées dans la table
etudiants
.
Une solution
Vous devez être connecté pour voir le contenu.