Projet contenant deux base de données MariaDb et un PHPMyAdmin ayant pour finalité de s'initier et s'entrainer à la gestion des droits utilisateurs SQL.
- Créez les utilisateurs suivants avec un mot de passe sécurisé :
user_lecture
etuser_ecriture
.
- Autorisez l'utilisateur user_lecture à lire les données des tables
utilisateurs
etproduits
. - Autorisez l'utilisateur user_ecriture à insérer, modifier et supprimer des données dans les tables
utilisateurs
etproduits
.
- Connectez-vous à la base de données
gestion_droits
en tant queuser_lecture
et vérifiez que vous pouvez lire les données des tablesutilisateurs
etproduits
. - Connectez-vous à la base de données
gestion_droits
en tant queuser_ecriture
et vérifiez que vous pouvez insérer, modifier et supprimer des données dans les tablesutilisateurs
etproduits
.
- Révoquez les droits de lecture de l'utilisateur
user_lecture
sur les tablesutilisateurs
. - Révoquez les droits de suppression de l'utilisateur
user_ecriture
sur les tablesproduits
.
Vous êtes administrateur d'une base de données pour une startup qui gère une plateforme de réservation d'événements. Les utilisateurs de la plateforme ont différents rôles : administrateurs, gestionnaires d'événements, et clients. Chaque rôle dispose de permissions spécifiques pour interagir avec la base de données.
Vous devez configurer les droits d'accès pour ces rôles, en suivant les règles définies ci-dessous, tout en respectant les bonnes pratiques en matière de sécurité.
-
Créez les utilisateurs suivants avec un mot de passe sécurisé :
admin
,gestionnaire
etclient
. -
Attribuer les droits aux utilisateurs en fonction de leur rôle :
admin
: Accès completgestionnaire
: Accès en lecture et écriture aux événements et aux réservations, mais pas aux clients.client
: accès en lecture seule aux événements et réservations, avec possibilité de modifier ses propres réservations.
-
Tester les permissions pour chaque utilisateur
- Pour
admin
: lire, insérer, modifier et supprimer dans toutes les tables. - Pour
gestionnaire
: insérer un nouvel événement et modifier une réservation. - Pour
client
: essayer de lire les événements et de modifier une réservation.
- Pour
-
Vous devez créer une vue permettant à un gestionnaire d'avoir une liste des participants à un événement donné, cette vue doit contenir les informations suivantes :
- Le nom de l'événement.
- La date de l'événement.
- Le lieu de l'événement.
- Le nom et l'email des participants.
- Le nombre de places réservées par chaque participant.
-
Vous ajusterez ensuite les permissions pour que le gestionnaire puisse consulter cette vue.
Pour des raisons de sécurité et de traçabilité, vous devez mettre en place un système de logs des opérations effectuées
de modifications sur les bases de données gestion_evenements
et gestion_droits
.
Vous créerez une nouvelle base de données logs
contenant une table modifications
avec les colonnes suivantes :
- operation_type : Type de modification (INSERT, UPDATE, DELETE).
- table_name : Nom de la table affectée.
- modified_data : Données impliquées dans la modification (sous forme de JSON pour une flexibilité maximale).
- user_name : Utilisateur ayant exécuté l'opération (obtenu via la variable SQL USER()).
- operation_date : Date et heure de la modification.
Vous ajouterez des triggers sur les tables des bases de données gestion_evenements
et gestion_droits
pour enregistrer
les opérations d'insertion, de modification et de suppression dans la table modifications
de la base de données logs
.
Vous veillerez à autoriser les permissions d'écriture sur la table modifications
de la base de données logs
pour
que tout utilisateur ayant les droits d'écriture sur les tables gestion_evenements
et gestion_droits
puisse enregistrer les logs.
Ensuite vous créerez un utilisateur logger
avec les droits de lecture sur la table modifications
pour tester la bonne viusalisation des logs.