Pack de contenus (8 labs, séquence 08 complète)

This commit is contained in:
Adam Belkacemi 2026-10-07 00:35:50 +02:00
parent 138235bd76
commit 5c396d5a94
13 changed files with 805 additions and 0 deletions

View file

@ -0,0 +1,51 @@
id: 07-sql
titre: Interroger une base MariaDB
niveau: intermediaire
duree_min: 50
formations: [nsi-tle, stmg-sig, bts-sio-slam, bts-sio-sisr, but-info]
competences: [sql-select, jointures, ddl, droits-sgbd]
reseaux:
- nom: isole
cidr: 10.0.0.0/24
machines:
- nom: bdd
image: paillasse-debian
flavor: eleve.petit
reseaux: [isole]
preparation: "systemctl enable --now mariadb && mysql < /opt/labs/07/lycee.sql"
consignes:
- "La base `lycee` contient les tables eleves, classes et notes. Explore-la."
- "Crée la vue `moyennes` qui donne, pour chaque élève, son pseudonyme et sa moyenne."
- "Crée la table `clubs` (id clé primaire auto-incrémentée, nom texte non nul) et insère au moins 3 clubs."
- "Crée l'utilisateur `prof` qui peut seulement lire (SELECT) la base lycee."
verifications:
- id: vue
titre: Vue moyennes
machine: bdd
commande: "mysql -N -e 'SELECT COUNT(*) FROM lycee.moyennes' | grep -Eq '^[1-9]'"
attendu: { code_retour: 0 }
points: 3
message_echec: "La vue lycee.moyennes n'existe pas ou est vide."
- id: table
titre: Table clubs remplie
machine: bdd
commande: "test \"$(mysql -N -e 'SELECT COUNT(*) FROM lycee.clubs')\" -ge 3"
attendu: { code_retour: 0 }
points: 2
message_echec: "La table lycee.clubs n'existe pas ou contient moins de 3 lignes."
- id: droits
titre: Utilisateur prof en lecture seule
machine: bdd
commande: "mysql -N -e \"SHOW GRANTS FOR 'prof'@'localhost'\" | grep -q 'GRANT SELECT ON `lycee`'"
attendu: { code_retour: 0 }
points: 2
message_echec: "L'utilisateur prof n'a pas exactement le droit SELECT sur lycee."
indices:
- "SHOW TABLES; puis DESCRIBE eleves;"
- "CREATE VIEW moyennes AS SELECT … JOIN … GROUP BY …;"
- "GRANT SELECT ON lycee.* TO 'prof'@'localhost';"