Protection de l’information

Slides:



Advertisements
Présentations similaires
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Advertisements

Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Contrôles d'accès aux données
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Les vues Une vue: c’est une relation virtuelle. Définie par:
Les bases de données Séance 8 Jointures.
Le langage SQL.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
RAPPEL SUR LES BASES DE DONNÉES, LE SQL 1 er trimestre V1.0 06/01/2015.
1- Régles de normalisation 2ème partie : normalisation Modèle Conceptuel des Données 2- Les Formes Normales 3- Dépendances Fonctionnelles 4- Recap - Méthodologie.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
SQL : 4 fonctions d'exploitation de SGBD SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage informatique ayant pour.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
1- phpMyAdmin 3ème partie : Manipulation des données Le langage SQL 2- Gérer les tables 3- Gérer les données.
SQL partie 1 Langage de Définition de Données. SQL est un langage de définition de données  SQL est un langage de définition de données (LDD), c'est-à-dire.
Intégration web & Base de données 1 Intégration Web & Base de DonnéesMariem Farhat Intérêt des bases de données pour le Web Cours préparé par : Mariem.
Les Bases de données Définition Architecture d’un SGBD
Cours Initiation aux Bases De Données
Initiation à la conception des systèmes d'informations
L2A Semestre 4 Mehdi Benzine
Environnement du développement de BD ORACLE REPORTS 10g
Introduction aux Systèmes de Gestion de Bases de données
ملخص Initiation à la sgbdr
Structured Query Language SQL DDL
Intégration du P7 dans l’épreuve E41
Initiation aux bases de données et à la programmation événementielle
Université Stendhal - Grenoble
LE LANGAGE DE REQUETES SQL
Langage de manipulation de données (LMD)
Base de données: Généralité IFT6800 Jian-Yun Nie.
Structured Query Language
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Langage de Manipulation des Données LMD
SQL LID – INTERROGATIN DES DONNEES
Maria Berger - Maîtrise d'AES Algèbre relationnelle.
Introduction BD TABLES ET DONNÉES champs OU données, types de données
Notion De Gestion De Bases De Données
Manipulation D’Une Base De Données
Structure D’une Base De Données Relationnelle
Langage d’interrogation des Données LID
SQL Structured Query Language
Introduction en systèmes d’information et bases de données B.Shishedjiev -Introduction en BD 1.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
10 Copyright © 2004, Oracle. Tous droits réservés. Créer d'autres objets de schéma.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
La gestion des habilitations par le partenaire
1. LE LANGAGE SQL DDL Version 2 - Janvier Le langage SQL-DDL
7 Contraintes d’intégrité en SQL
Semaine 3 Retour sur la semaine 2 Plan de séance
Info Bases de données avancées
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
Définition des contraintes Vérification des contraintes Triggers
TP1 - DBMAIN BFSH Lausanne - Switzerland - Tel Université de Lausanne.
Bases – Banques Entrepôts de données
© Robert Godin. Tous droits réservés.
1. LE LANGAGE SQL DDL Version 1 - Mai 2009 corrigé le 11/2/2011
Transcription de la présentation:

Protection de l’information Contraintes d’intégrité Vues Droits

Pratique d’un SGBD : PostgreSQL Où en sommes nous ? Objectifs des bases de données Modèle relationnel Algèbre relationnelle SQL Conception et rétro-conception Pratique d’un SGBD : PostgreSQL Protection de l’information Web/BD

Plan du document Contraintes d’intégrité slide 177 Définition et exemple CIs dans les SGBD Exemple SQL complet Problèmes liés aux CIs Notion de transaction Vues relationnelles slide 193 Gestion des droits slide 207 Conclusion slide 214 Et moi que dois-je faire ? slide 216 La protection des informations recouvre trois aspects: le respect des règles de gestion des données (contraintes d’intégrité); la définition de schémas externes; la définition de droits d’accès en fonction des utilisateurs. Lors de la définition des relations, il est possible de définir des règles de gestion des données: les contraintes d’intégrité. Une contrainte d’intégrité est une règle spécifiée sur les données, pour définir un état cohérent de la base. Trois niveaux de description ont été définis selon le groupe ANSI/X3/SPARC (1975) La centralisation de toutes les données au sein du niveau conceptuel induit un certain nombre de problèmes: l’utilisateur final est perdu compte-tenu du volume d’information mis à sa disposition; la gestion des accès à l’information doit être réalisée par programmes; la cohérence des informations doit être gérée par programmes... La définition du schéma externe a pour but de personnaliser l’information en fonction de l’utilisateur: accès aux seules informations pertinentes; présentation des données suivant la logique de cette catégorie d’utilisateur... D’autre part ce mécanisme permet de restreindre l’accès aux informations et ainsi d’assurer la protection des données. Il est par exemple possible de ne pas donner accès à un attribut dans une relation (le salaire d’un employé doit rester une donnée confidentielle). Cette première fonctionnalité est assurée par un mécanisme de vues. Associer à ce mécanisme filtrant les informations, il est possible de définir des droits d’accès à chacun des objets constituant la base de données. Ainsi, il est possible de donner des droits en lecture, en écriture à un objet de la base de données pour une catégorie d’utilisateurs.

Définition et exemple de contraintes d’intégrité Traduction des règles de gestion des données Etat cohérent de la base Vérifiées en permanence Modèle relationnel Unicité de la clé (num dans vins) CI référentielle (nvin vers num) Domaine Année entre 1970 et 2000 Région : ‘ Bourgogne ’, ‘ Beaujolais  ’, … Le degré d’un vin est supérieur à 7 Non nullité Nom de cru de vin obligatoire Comportementale Le degré d’un vin augmente Schéma de la BD Vins Vins(num, cru, annee, degre) Producteurs(num, nom, prenom, region) Recoltes(nprod, nvin, quantite) CIs structurelles : Modèle relationnel (unicité de clé) CIs comportementales : Liées aux applications CIs intra-relation : Une seule relation (non nullité d ’un attribut) CIs inter-relation : Plusieurs relations (intégrité référentielle) Domaine : base (entier, réel, date,.... ), Intervalle de valeurs ou liste de valeurs Non nullité : obliger à renseigner un attribut “ Non nullité ” ne signifie pas “ non nul ”! Non nullité souvent définie pour les attributs constituant la clé Unicité : clé(p. ex, clé candidates non choisies comme clé primaire) Clé étrangère : liens entre les relations Groupe d’attribut d’une relation constituant la clé d’une autre relation Vérifications: Insertion / Suppression / MàJ cascade Contraintes temporelles : maîtriser l’évolution des données Contraintes avec agrégat : règle sur un ensemble de tuples Contraintes d ’inclusion : Toutes les villes de résidences des employés sont des sites de l ’entreprise Contraintes générales : contraintes appartenant à plusieurs catégories Contraintes “ temporelles agrégatives ”: le nombre de projet sur lequel travaille un employé ne peut pas décroître

CIs dans les SGBD (1) Comment les exprimer? SQL Extensions de SQL Contraintes d’intégrité CIs dans les SGBD (1) Comment les exprimer? SQL Extensions de SQL Quand les déclarer ? À la création du schéma de BD : CREATE TABLE À chaque définition d’attribut À la fin de la définition d’une relation Au cours de la vie de la BD : ALTER TABLE

CIs dans les SGBD (2) Non nullité des valeurs d'un attribut Définition des données CIs dans les SGBD (2) Non nullité des valeurs d'un attribut Unicité de la valeur d'un attribut ou d'un groupe d'attributs Valeur par défaut pour un attribut Contrainte de domaine Clé primaire (un attribut ou un groupe) Intégrité référentielle "minimale"

CIs dans les SGBD (3) Quelles CIs dans les normes Contraintes d’intégrité CIs dans les SGBD (3) Quelles CIs dans les normes SQL 86 : unicité, non nullité, vue avec « check option » SQL 89 : domaine, clé, intégrité référentielle avec « rejet » SQL2 (SQL92) : intégrité référentielle avec « cascade delete » et « cascade UPDATE » Qu’offrent les SGBD ? Peu de CIs en général Autres CIs vérifiées par programme

Exemple SQL complet Contraintes d’intégrité CREATE TABLE Vins ( num INTEGER PRIMARY KEY, cru CHAR (40) NOT NULL, annee INTEGER CONSTRAINT Cannee CHECK (annee BETWEEN 1970 AND 2010), degre NUMBER(4,2) CONSTRAINT Cdegre CHECK (degre BETWEEN 9.0AND 15.0)) ; CREATE TABLE Producteurs ( nom CHAR(40), prenom CHAR(40), region CHAR(40)) ALTER TABLE Producteurs ADD CONSTRAINT Cregion CHECK (region IN ('Bourgogne', 'Beaujolais', 'Alsace', 'Jura', 'Corse')) ; CREATE TABLE Recoltes( nprod INTEGER, nvin INTEGER, quantite INTEGER) ; ALTER TABLE Recoltes ADD PRIMARY KEY (nprod, nvin) ; ADD CONSTRAINT refVIN FOREIGN KEY (nvin) REFERENCES VINS(num) ON DELETE CASCADE ; ADD CONSTRAINT refREP FOREIGN KEY (nprod) PRODUCTEURS(num) ON DELETE CASCADE ; Contraintes au niveau attribut NULL | NOT NULL : obligatoire ou non UNIQUE Accepte les valeurs nulles, Génère un index automatiquement PRIMARY KEY Ne peut apparaître qu ’une seule fois / relation Génère un index automatiquement REFERENCES nom_relation (attribut) [ON DELETE CASCADE] “ON DELETE CASCADE ” : suppression automatique des tuples de la relation secondaire référençant un tuple de la relation primaire à supprimer Les attributs constituant la clé étrangère dans la relation secondaire doivent avoir le même domaine que les attributs constituant la clé primaire dans la relation Une clé étrangère peut référencer la même relation primaire CHECK condition Contraintes de domaines plus précises Si la clause CHECK n’est pas vérifiée, l’ordre SQL est annulé Contraintes sur les relations UNIQUE liste d’attributs PRIMARY KEY liste d’attributs FOREIGN KEY liste d’attributs REFERENCES nom_relation(attributs)

Problèmes liés aux CIs Cohérence Pas de règles contradictoires Contraintes d’intégrité Problèmes liés aux CIs Cohérence Pas de règles contradictoires Redondance age > 18 et age > 21 Optimisation Limiter au nombre minimal de données mises à jour pour la vérification Vérification sur certains types de màj uniquement

Plan du document Contraintes d’intégrité slide 177 … Notion de transaction Gestion des CIs Transaction A C I D Vues relationnelles slide 19 Gestion des droits slide 216 Conclusion slide 225 Et moi que dois-je faire ? slide 227 La protection des informations recouvre trois aspects: le respect des règles de gestion des données (contraintes d’intégrité); la définition de schémas externes; la définition de droits d’accès en fonction des utilisateurs. Lors de la définition des relations, il est possible de définir des règles de gestion des données: les contraintes d’intégrité. Une contrainte d’intégrité est une règle spécifiée sur les données, pour définir un état cohérent de la base. Trois niveaux de description ont été définis selon le groupe ANSI/X3/SPARC (1975) La centralisation de toutes les données au sein du niveau conceptuel induit un certain nombre de problèmes: l’utilisateur final est perdu compte-tenu du volume d’information mis à sa disposition; la gestion des accès à l’information doit être réalisée par programmes; la cohérence des informations doit être gérée par programmes... La définition du schéma externe a pour but de personnaliser l’information en fonction de l’utilisateur: accès aux seules informations pertinentes; présentation des données suivant la logique de cette catégorie d’utilisateur... D’autre part ce mécanisme permet de restreindre l’accès aux informations et ainsi d’assurer la protection des données. Il est par exemple possible de ne pas donner accès à un attribut dans une relation (le salaire d’un employé doit rester une donnée confidentielle). Cette première fonctionnalité est assurée par un mécanisme de vues. Associer à ce mécanisme filtrant les informations, il est possible de définir des droits d’accès à chacun des objets constituant la base de données. Ainsi, il est possible de donner des droits en lecture, en écriture à un objet de la base de données pour une catégorie d’utilisateurs.

Gestion des CIs Est-ce possible ? Déclarations de contraintes d’intégrité Etat cohérent de la base Vérifiées en permanence La notion de transaction sur une base de données permet de définir un ensemble de traitements sur la base de données la faisant passer d’un état cohérent à un autre état cohérent. A la fin d’une transaction, l’ensemble des contraintes d’intégrité définies doit être vérifié. Cependant, il se peut que ces contraintes d’intégrité ne soit pas vérifiées au cours de la transaction. Rien ne se perd, rien ne se crée 900 1000 100 100 100 000 Virer 100 €

Regrouper des opérations élémentaires (lire, écrire) Transaction Regrouper des opérations élémentaires (lire, écrire) Virement (cpte source, montant, cpte destinataire) Dire « je commence » Enlever montant au cpte source Ajouter montant au cpte destinataire Dire « j’ai fini »

Contraintes d’intégrité Propriétés A C I D

A ? Virement (cochon rose, 100, cochon vert) Dire « je commence » Enlever 100 au cochon rose Ajouter 100 au cochon vert Dire « j’ai fini »

C ? Virement (cochon rose, 100, cochon vert) Dire « je commence » Enlever 100 au cochon rose Ajouter 100 au cochon vert Ajouter 0,1 a mon compte Dire « j’ai fini » La protection des informations recouvre trois aspects: le respect des règles de gestion des données (contraintes d’intégrité); la définition de schémas externes; la définition de droits d’accès en fonction des utilisateurs. Lors de la définition des relations, il est possible de définir des règles de gestion des données: les contraintes d’intégrité. Une contrainte d’intégrité est une règle spécifiée sur les données, pour définir un état cohérent de la base. Trois niveaux de description ont été définis selon le groupe ANSI/X3/SPARC (1975) La centralisation de toutes les données au sein du niveau conceptuel induit un certain nombre de problèmes: l’utilisateur final est perdu compte-tenu du volume d’information mis à sa disposition; la gestion des accès à l’information doit être réalisée par programmes; la cohérence des informations doit être gérée par programmes... La définition du schéma externe a pour but de personnaliser l’information en fonction de l’utilisateur: accès aux seules informations pertinentes; présentation des données suivant la logique de cette catégorie d’utilisateur... D’autre part ce mécanisme permet de restreindre l’accès aux informations et ainsi d’assurer la protection des données. Il est par exemple possible de ne pas donner accès à un attribut dans une relation (le salaire d’un employé doit rester une donnée confidentielle). Cette première fonctionnalité est assurée par un mécanisme de vues. Associer à ce mécanisme filtrant les informations, il est possible de définir des droits d’accès à chacun des objets constituant la base de données. Ainsi, il est possible de donner des droits en lecture, en écriture à un objet de la base de données pour une catégorie d’utilisateurs.

I ?        Virement (cochon rose, 100, cochon vert) Dire « je commence » Enlever 100 au cochon rose Ajouter 100 au cochon vert Dire « j’ai fini » Virement (cochon rose, 500, cochon vert) Dire « je commence » Enlever 500 au cochon rose Ajouter 500 au cochon vert Dire « j’ai fini »       

D ? Virement (cochon rose, 100, cochon vert) Dire « je commence » Enlever 100 au cochon rose Ajouter 100 au cochon vert Dire « j’ai fini »

Une transaction est ACID A : atomicity C : consistency I : isolation D : durability

Plan du document Contraintes d’intégrité Vues relationnelles Rappel d’architecture Exemple de vues Principe Objectif Syntaxe Exemples de création de vues Manipulations de la BD au travers des vues Suppression et renommage Critique des vues Gestion des droits Conclusion Et moi que dois-je faire ? La protection des informations recouvre trois aspects: le respect des règles de gestion des données (contraintes d’intégrité); la définition de schémas externes; la définition de droits d’accès en fonction des utilisateurs. Lors de la définition des relations, il est possible de définir des règles de gestion des données: les contraintes d’intégrité. Une contrainte d’intégrité est une règle spécifiée sur les données, pour définir un état cohérent de la base. Trois niveaux de description ont été définis selon le groupe ANSI/X3/SPARC (1975) La centralisation de toutes les données au sein du niveau conceptuel induit un certain nombre de problèmes: l’utilisateur final est perdu compte-tenu du volume d’information mis à sa disposition; la gestion des accès à l’information doit être réalisée par programmes; la cohérence des informations doit être gérée par programmes... La définition du schéma externe a pour but de personnaliser l’information en fonction de l’utilisateur: accès aux seules informations pertinentes; présentation des données suivant la logique de cette catégorie d’utilisateur... D’autre part ce mécanisme permet de restreindre l’accès aux informations et ainsi d’assurer la protection des données. Il est par exemple possible de ne pas donner accès à un attribut dans une relation (le salaire d’un employé doit rester une donnée confidentielle). Cette première fonctionnalité est assurée par un mécanisme de vues. Associer à ce mécanisme filtrant les informations, il est possible de définir des droits d’accès à chacun des objets constituant la base de données. Ainsi, il est possible de donner des droits en lecture, en écriture à un objet de la base de données pour une catégorie d’utilisateurs.

Vues Rappel d’architecture Description des données : 3 niveaux d’abstraction Groupe ANSI/X3/SPARC (1975) Schéma externe 1 …. Schéma externe n Schéma conceptuel Schéma physique

appli Direction des études Contexte technique Exemple de vues SE pour appli Service social Étudiant Chambre SE pour appli Bibliothèque Étudiant Livre SE pour appli Direction des études Étudiant UV Comment les données sont vues par les « utilisateurs » Représentations logiques Multiples Globalité des données Représentation logique Unique Schéma conceptuel Schéma physique Globalité des données Représentation physique des données. Comment les données sont mémorisées (fichiers, index, …) Unique

Principe Relation virtuelle Vues Principe Relation virtuelle Ensemble de tuples qui n’existe pas physiquement Calculable à l’exécution Définie par une requête SQL Utilisable comme une relation Utilisable pour définir une autre vue Le modèle relationnel, grâce à la manipulation ensembliste des données, autorise la définition d’un ensemble particulier de tuples à l’aide d’un critère de recherche. Ces tuples peuvent être composés à partir de plusieurs relations de base. Le résultat de n’importe quelle requête est une relation au même titre que n’importe quelle relation effectivement implantée en machine: le résultat d’une requête peut servir de base à l’expression d’une autre requête.

Objectifs Indépendance logique Adaptation aux applications Vues Objectifs Indépendance logique Adaptation aux applications Intégration des applications existantes Dynamique du schéma de la base Confidentialité et sécurité Décentralisation de l’administration d’une BD Hétérogénéité des modèles

Syntaxe CREATE VIEW nom_vue [{nom_attribut}] AS requête Exemple Vues Syntaxe CREATE VIEW nom_vue [{nom_attribut}] AS requête Exemple CREATE VIEW vins_beaujolais (no, nom, degre) AS SELECT num, cru, degre FROM vins WHERE cru=‘Beaujolais ’; La spécification des noms d’attributs de la vue est facultative. Par défaut, les attributs de la vue ont pour nom les attributs des relations utilisées dans la requête. La clause “ CHECK OPTION ” permet de définir des contraintes d’intégrité référentielles à vérifier lors des modifications de la base de données. Cette clause permet de vérifier que les mises à jour ou les insertions faites “ à travers la vue ” ne produisent que des tuples qui feront partie de la sélection de la vue. Une vue peut être utilisée pour contrôler l’intégrité des données grâce à la clause “ WITH CHECK OPTION ”. Cette option interdit: d’insérer des tuples qui ne respectant pas les restriction de la vue; de modifier un tuple en violant les contraintes définies sur la vue. On veut, par exemple, créer une vue respectant les condition suivantes: un employé parisien a toujours une commission un employé provincial n’a jamais de commission. CREATE VIEW Employé_com AS SELECT * FROM Employé WHERE (adresse ‘Paris’AND Comm IS NOT NULL) OR (adresse <> ‘Paris’AND Comm IS NULL) WITH CHECK OPTION; Noms différents ….

Renommage obligatoire Vues Exemples CREATE VIEW crus (nom) AS SELECT DISTINCT cru FROM vins ; CREATE VIEW Clients_beaujolais_paris (num, nom, qte_cdee) AS SELECT Cl.num, Cl.nom, sum(qte) FROM Clients Cl, Commandes C, Vins V WHERE Cl.num = C.ncli AND C.nvin=V.nun AND V.cru = ‘ Beaujolais’ AND Cl.ville = ‘Paris’ GROUP BY Cl.num, Cl.nom; Renommage obligatoire

Relation : Parent (asc, dsc) Vues Exemples (2) Relation : Parent (asc, dsc) CREATE VIEW grand_parent (asc, dsc)as SELECT P1.asc, P2.dsc FROM parent P1, parent P2 WHERE P1.dsc = P2.asc; CREATE VIEW arr_grd_parent (asc, dsc) AS SELECT P.asc, GP.dsc FROM parent P, grand_parent GP WHERE P.dsc=GP.asc;

Manipulation de la BD au travers des vues Consultation Toujours possible Nom de la vue dans la clause FROM SELECT * FROM vins_beaujolais; Mises à jour Rarement possible … Une vue peut être référencée dans un ordre SELECT au même titre qu’une relation. Tout se passe comme cette vue était une relation pour l’utilisateur. En fait, cette relation est virtuelle: seule la définition de la vue est stockée.

Mises à jour DISTINCT ne doit pas être utilisée dans la requête Vues Mises à jour DISTINCT ne doit pas être utilisée dans la requête Clause FROM ne doit contenir qu'une seule relation; si la relation source est une vue, celle-ci doit vérifier cette contrainte Clause SELECT ne doit pas faire référence à des expressions, ou des fonctions Clause WHERE ne doit pas contenir de requête imbriquée Requête ne doit pas contenir de clause GROUP BY ni de clause HAVING

  Mises à jour (2) CREATE VIEW Vins_bordeaux AS Vues Mises à jour (2)  Tuples identifiables CREATE VIEW Vins_bordeaux AS SELECT num, annee, degre FROM vins WHERE cru = ‘Bordeaux ’; CREATE VIEW deg_moy_par_cru AS SELECT cru, avg (degre) GROUP BY cru ;  Augmenter la moyenne des degrés de 1?

Ajouter 10 à la quantité commandée Vues Mises à jour (3) CREATE VIEW Clients_beaujolais_paris (num, nom, qte_cdee) AS SELECT Cl.num, Cl.nom, sum(qte) FROM Clients Cl, Commandes C, Vins V WHERE Cl.num = C.ncli AND C.nvin=V.num AND V.cru = ‘Beaujolais’ AND Cl.ville = ‘Paris’ GROUP BY Cl.num, Cl.nom ;  Ajouter 10 à la quantité commandée par le buveur 10?

Suppression et renommage Vues Suppression et renommage Destruction DROP VIEW Toutes les vues qui utilisent cette vue sont automatiquement détruites Relation de base détruite => toutes les vues définies sur cette relation sont automatiquement détruites Renommage RENAME ancien_nom TO nouveau_nom 

  Critiques des vues Sécurité Différentes façons de voir la BD Indépendance logique Manipulation facile  Mises à jour impossibles en général

Plan du document Contraintes d’intégrité Vues relationnelles Gestion des droits Techniques pour assurer la confidentialité Concepts SQL Privilèges Syntaxe Rôles Suppression de droit Droits et vues Conclusion Et moi que dois-je faire ? La protection des informations recouvre trois aspects: le respect des règles de gestion des données (contraintes d’intégrité); la définition de schémas externes; la définition de droits d’accès en fonction des utilisateurs. Lors de la définition des relations, il est possible de définir des règles de gestion des données: les contraintes d’intégrité. Une contrainte d’intégrité est une règle spécifiée sur les données, pour définir un état cohérent de la base. Trois niveaux de description ont été définis selon le groupe ANSI/X3/SPARC (1975) La centralisation de toutes les données au sein du niveau conceptuel induit un certain nombre de problèmes: l’utilisateur final est perdu compte-tenu du volume d’information mis à sa disposition; la gestion des accès à l’information doit être réalisée par programmes; la cohérence des informations doit être gérée par programmes... La définition du schéma externe a pour but de personnaliser l’information en fonction de l’utilisateur: accès aux seules informations pertinentes; présentation des données suivant la logique de cette catégorie d’utilisateur... D’autre part ce mécanisme permet de restreindre l’accès aux informations et ainsi d’assurer la protection des données. Il est par exemple possible de ne pas donner accès à un attribut dans une relation (le salaire d’un employé doit rester une donnée confidentielle). Cette première fonctionnalité est assurée par un mécanisme de vues. Associer à ce mécanisme filtrant les informations, il est possible de définir des droits d’accès à chacun des objets constituant la base de données. Ainsi, il est possible de donner des droits en lecture, en écriture à un objet de la base de données pour une catégorie d’utilisateurs.

Techniques pour assurer la confidentialité Droits Techniques pour assurer la confidentialité Définition de contraintes d'autorisation Contrôle de flux de données Contrôle d'inférence Cryptographie

Privilèges Créateur d'une relation ou d'une vue = propriétaire Droits Privilèges Créateur d'une relation ou d'une vue = propriétaire Peut donner un droit Peut autoriser à transmettre un droit Droits sur un objet SELECT : consultation DELETE : suppression INSERT : insertion UPDATE : modification La protection des objets d'une base de données est décentralisée : c'est le créateur d'un objet qui possède tous les droits de lecture, de modification et de suppression de cet objet. Les autres utilisateurs n'ont aucun droit d'accès à cet objet, à moins que le créateur ne les leur accorde explicitement par une commande GRANT

Syntaxe GRANT <privilège> ON <objet> Droits Syntaxe defude GRANT SELECT ON vins TO lecocq; GRANT SELECT, UPDATE(cru) TO lecocq, bouzeghoub WITH GRANT OPTION; GRANT ALL lecocq SELECT * ON defude.vins ;  UPDATE defude.vins SET degre = degre * 1.1 ;  Si DBA défini un alias : FROM vins ;  GRANT <privilège> ON <objet> TO <utilisateur> [WITH GRANT OPTION]; WITH GRANT OPTION autorise à transmettre les droits Le propriétaire d'une table peut donner des droits de lecture non pas sur la table entière, mais sur une vue basée sur la table. Ainsi, seules les informations faisant partie de la vue seront accessibles. Pour oracle, le nom complet d'une relation ou d'une vue est le nom donné par le créateur, préfixé par le nom du créateur. Par exemple scott.emp est le nom complet de la relation emp créée par l'utilisateur scott. Ceci permet à plusieurs utilisateurs de créer des objets de même nom sans qu'il y ait confusion. En revanche, pour accéder à un objet dont on n'est pas le créateur, il faut le désigner par son nom complet incluant le nom du créateur.

      Rôles Rôle Droits Droit 1 (lect. sur vins) Droit 2 (lect. sur récoltes) Droit 3 (lect. sur prod.) Droit 1 (lect. sur vins) Droit 2 (lect. sur récoltes) Droit 3 (lect. sur prod.) Rôle : regrouper un ensemble de droit On peut transmettre un rôle à : -un utilisateur - un autre rôle. Rôle      

Suppression de droit REVOKE <privilèges> ON <objet> Droits Suppression de droit REVOKE <privilèges> ON <objet> FROM <utilisateurs> Retire les droits transmis En cascade REVOKE ALL ON vins FROM defude;  12h  Un utilisateur ayant accordé un privilège peut le reprendre à l'aide de l'ordre REVOKE.  9h 13h 11h   13h  10h 14h  16h   Ou  ?

Droits Droits et vues Donner des droits de lecture non pas sur la relation entière, mais sur une vue basée sur la relation => Restreindre l’accès à quelques attributs CREATE VIEW vins_beaujolais AS SELECT num, cru, degre FROM vins WHERE cru=‘Beaujolais’; GRANT SELECT ON vins_beaujolais TO producteurs_beaujolais; Droits + vues => bonne protection des données

Plan du document Contraintes d’intégrité Vues relationnelles Gestion des droits Conclusion Et moi que dois-je faire ? La protection des informations recouvre trois aspects: le respect des règles de gestion des données (contraintes d’intégrité); la définition de schémas externes; la définition de droits d’accès en fonction des utilisateurs. Lors de la définition des relations, il est possible de définir des règles de gestion des données: les contraintes d’intégrité. Une contrainte d’intégrité est une règle spécifiée sur les données, pour définir un état cohérent de la base. Trois niveaux de description ont été définis selon le groupe ANSI/X3/SPARC (1975) La centralisation de toutes les données au sein du niveau conceptuel induit un certain nombre de problèmes: l’utilisateur final est perdu compte-tenu du volume d’information mis à sa disposition; la gestion des accès à l’information doit être réalisée par programmes; la cohérence des informations doit être gérée par programmes... La définition du schéma externe a pour but de personnaliser l’information en fonction de l’utilisateur: accès aux seules informations pertinentes; présentation des données suivant la logique de cette catégorie d’utilisateur... D’autre part ce mécanisme permet de restreindre l’accès aux informations et ainsi d’assurer la protection des données. Il est par exemple possible de ne pas donner accès à un attribut dans une relation (le salaire d’un employé doit rester une donnée confidentielle). Cette première fonctionnalité est assurée par un mécanisme de vues. Associer à ce mécanisme filtrant les informations, il est possible de définir des droits d’accès à chacun des objets constituant la base de données. Ainsi, il est possible de donner des droits en lecture, en écriture à un objet de la base de données pour une catégorie d’utilisateurs.

Mécanismes complémentaires Contraintes d’intégrité Garantissent la cohérence des données Sécurité « sémantique », applicative Vues Délimitent des frontières d’accès, avec une granularité très fine Masquent la complexité interne Droits Spécifient les types d’accès, avec un système de droits riche

Plan du document Contraintes d’intégrité Vues relationnelles Gestion des droits Conclusion Et moi que dois-je faire ? La protection des informations recouvre trois aspects: le respect des règles de gestion des données (contraintes d’intégrité); la définition de schémas externes; la définition de droits d’accès en fonction des utilisateurs. Lors de la définition des relations, il est possible de définir des règles de gestion des données: les contraintes d’intégrité. Une contrainte d’intégrité est une règle spécifiée sur les données, pour définir un état cohérent de la base. Trois niveaux de description ont été définis selon le groupe ANSI/X3/SPARC (1975) La centralisation de toutes les données au sein du niveau conceptuel induit un certain nombre de problèmes: l’utilisateur final est perdu compte-tenu du volume d’information mis à sa disposition; la gestion des accès à l’information doit être réalisée par programmes; la cohérence des informations doit être gérée par programmes... La définition du schéma externe a pour but de personnaliser l’information en fonction de l’utilisateur: accès aux seules informations pertinentes; présentation des données suivant la logique de cette catégorie d’utilisateur... D’autre part ce mécanisme permet de restreindre l’accès aux informations et ainsi d’assurer la protection des données. Il est par exemple possible de ne pas donner accès à un attribut dans une relation (le salaire d’un employé doit rester une donnée confidentielle). Cette première fonctionnalité est assurée par un mécanisme de vues. Associer à ce mécanisme filtrant les informations, il est possible de définir des droits d’accès à chacun des objets constituant la base de données. Ainsi, il est possible de donner des droits en lecture, en écriture à un objet de la base de données pour une catégorie d’utilisateurs.

Et moi que dois-je faire ? Relire les transparents Lire la documentation complémentaire : Notre cours rédigé : http://www-inf.it-sudparis.eu/COURS/bd/index.php?idr=45 Cours de Télécom ParisTech : http://perso.telecom-paristech.fr/~talel/cours/inf225/wwwbd/polyv7/chap6.htm Approfondir la notion de transaction : Cours de télécom ParisTech : http://perso.telecom-paristech.fr/~talel/cours/inf225/wwwbd/polyv7/chap8.htm Faire le QCM lié à ce cours sur moodle Pratiquer  faire les questions liées à la protection de l’information dans les annales récentes (ex création de table)  rendre le contrôle continu 2 en début de CI1 Mots-fléchés