Paillasse/paillasse-contenus/07-sql/lab.yaml

52 lines
1.8 KiB
YAML
Raw Normal View History

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';"