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.
Notions théoriques
-
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';
. -
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;
.infoLe
type_de_permission
peut être :ALL PRIVILEGES
pour toutes les permissions,- ou des permissions spécifiques comme
SELECT
,INSERT
,UPDATE
,DELETE
, etc.
-
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';
. -
Suppression d'un utilisateur :
Pour supprimer un utilisateur, nous utilisons la commande :
DROP USER 'nom_utilisateur'@'localhost';
. -
Vérification des permissions :
Pour vérifier les permissions d'un utilisateur, nous utilisons la commande :
SHOW GRANTS FOR 'nom_utilisateur'@'localhost';
. -
Connexion au serveur SQL à partir de Windows
ou
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.