TIWe1 2014-2015: Fondamentaux des bases de données
Cette unité d'enseignement du master Technologies de l'information et Web a pour objectif de donner quelques notions couramment utilisées pour la recherche en bases de données. Les deux principaux sujets abordés cette années sont :
Informations administratives
Nombre de crédits de l'UE : 2
Code APOGEE : INF2199M
UE Obligatoire pour ce parcours
UE valable pour le semestre 3 de ce parcours
-
modalité de contrôle de connaissance : examen écrit (60') avec oral de rattrapage (ECOR)
<note>
Actualités :
</note>
Séances
Les séances ont lieu le jeudi de 14h à 18h au bâtiment Nautibus en mode cours intégré.
-
S41 - 09/10 - C5 : extension de l'algèbre à la provenance, application au contrôle d'accès,
notes de cours Romuald Thion;
S42 - 16/10 - TP11 : développement en autonomie d'une preuve de concept de contrôle d'accès sur le prototype Perm Romuald Thion;
S43 - 23/10 - C1 : pas de cours (séance TIWe2)
S44 - 30/10 - C4 : pas de cours (séance TIWe2)
S45 - 06/11 - TD2 : langages déclaratifs pour les motifs (1/3) : Motivations; Découverte des DF dans une relation Jean-Marc Petit
S46 - 13/11 - TD13 : langages déclaratifs pour les motifs (2/3) : Au delà des DFs : autres exemples d'implications; SafeRL : un langage logique de requêtes pour les implications Jean-Marc Petit
S47 - 20/11 - TD12 :
RQL : un langage concret “à la
SQL” ; Discussions et perspectives (3/3) :
Jean-Marc Petit
S48 - 27/11 - C5 : pas de cours (séance TIWe2)
S49 - 04/12 - C5 : pas de cours (séance TIWe2)
S50 - 11/12 - TD13 : pas de cours (séance TIWe2)
S51 - 18/12 - C3 : examen TIWe1 (horaire exact à préciser).
Projet de conception
Le projet est à réaliser seul ou en binôme, il consiste à produire un proof-of-concept de contrôle d'accès par la provenance. Le choix des technologies utilisées est laissé libre au choix des étudiants, mais Java ou PHP est à privilégier.
Description du projet
Les principales étapes du projets sont les suivantes :
installation du prototype
PermDBMS qui est une version modifiée de PostgreSQL;
modélisation et création d'une table système contenant les privilèges des utilisateurs (il ne sont pas transmis avec la requête);
création d'un jeu d'essai inspiré des exemples où chaque table contient une colonne supplémentaire stag
qui contiendra les droits d'accès aux tuples;
mise en place d'une application (web) qui reçoit les requêtes et les identifiants des utilisateurs et les transmets à PermDBMS via ODBC/JDBC, cette application sert de proxy et c'est elle qui sera en charge du filtrage;
modification de l'application pour réécrire les requêtes
SQL de l'utilisateur en ajoutant le mot-clef
PROVENANCE
avant de la faire exécuter par PermDBMS;
modification de l'application pour filtrer les résultats des requêtes en ne gardant que les tuples auxquels l'utilisateur a accès en comparant ses accréditations aux stag
des tuples du résultat;
démonstration du fonctionnement général de l'application.
Le fonctionnement général est illustré par le diagramme de séquence suivant (crédits, Mayara KHADRAOUI)
Pour le modèle de contrôle d'accès, on choisira typiquement une des structures suivantes :
UserSet : un stag
est un ensemble d'identifiants d'utilisateur et chaque utilisateur a un unique identifiant
AttributeSet : un stag
est un ensemble d'ensembles d'attributs et chaque utilisateur est associé à un ensemble d'attributs
Remarques
Lors de l'installation de Perm,si vous avez un problème à l'exécution, voir la ligne 154 de postgresql.conf
wal_sync_method = fsync
, voir
ce post
On ne gérera que le sous-ensemble des requêtes SELECT
correspondant au fragment Sélection, Projection, Jointure, Renommage, Union, sans considérer INSERT
, UPDATE
et DELETE
On ne gérera pas l'authentification : pour la démonstration, on donnera simplement un identifiant d'utilisateur qui ne sera pas vérifié.
Modalités de rendu et d'évaluation
Le projet sera évalué sur la base d'un rapport qui explique pour chacune des étapes du projet ce qui a été réalisé, quels sont les choix de conception qui ont été faits dans l'implémentation et le résultat obtenu. En conclusion, le rapport contiendra une section qui indiquera le temps total passé sur le projet et proposera un regard sur la réalisation et le mécanisme proposé (e.g., faisabilité d'un intégration dans Postgre, passage à l'échelle du système). Le code source de votre application sera fourni en annexe en .zip
.
Le projet sera compté dans la moyenne seulement si la note attribuée est supérieure à la note obtenue à l'examen. Le cas échéant, le projet aura un coefficient 1 et l'examen un coefficient 2.
<note important>la date limite pour rendre le mini-projet est fixée au 28 novembre 18h</note>
Références