Le Langage de Contrôle de Données LCD. 2 Contrôle des Données Notion de Sous–Schéma –Restriction de la vision –Restriction des actions Privilèges –Systèmes.

Slides:



Advertisements
Présentations similaires
Marta Rukoz Université Paris X - Nanterre
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
Les Systèmes de Gestion de Bases de Données (SGBD) Les vues.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Fonctionnalités des SGBD
La sécurité par le contrôle d’accès
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,
Les contraintes d’integrité
LMD: Langage de Manipulation de Données
Contrôles d'accès aux données
Les bases de données Cours assuré par: Mlle Smii imen
Les fonctions de groupes Gestion des transactions
Services fournis par le SI et technologies associées
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
SQL partie 4. SQL est un langage de protections d'accès Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Gérer les privilèges.
Créer des packages.
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Fonctionnalités et limites d’outils d’indexation et de recherche.
Projet Python. ETAPE 1 Installation des packages python. Raccourcie crée automatiquement.
Copyright  Oracle Corporation, All rights reserved. 19 Gestion des Privilèges.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
(Ou groupes d ’utilisateurs)
(Procedural Language / Structured Query Language)
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
Copyright  Oracle Corporation, All rights reserved. 20 Gestion des Rôles ( ou regroupement des privilèges)
Gérer les rôles.
Les Contraintes.
Magellium - 24 rue Hermès – BP12113, Ramonville Saint-Agne 
Le Langage SQL Introduction. 2 Historique du Langage SQL E. F. CODD : premiers articles dans les années 70 IBM crée le langage SEQUEL (Structured English.
Gérer les utilisateurs
1 J. PHILIPP d'après G. Gardarin SGBDR : la gestion des vues l 1. Contexte l 2. Vues externes l 3. Interrogation des vues l 4. Mises à jour des vues l.
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.
Création et Gestion de Tables
Le Langage de Définition de Données LDD
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
4 Copyright © Oracle Corporation, Tous droits réservés. Gérer les sous-programmes.
Les vues Une vue: c’est une relation virtuelle. Définie par:
Définition des contraintes Vérification des contraintes Triggers
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Le Langage de Contrôle de Données TRIGGERS
MySQL 5 Chapitre 2 M. Person. MySql 5 - Chapitre II 2 Mysql5 - Sécurité et maintenance Création des utilisateurs Backup et restauration.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Module 11 : Implémentation de vues. Vue d'ensemble Présentation d'une vue Avantages liés aux vues Définition de vues Modification de données à l'aide.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
Chapitre V: Administration Basique d’une base de données Oracle
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Fonctionnalités avancées
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
Cours n°2 Implémentation et exploitation
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Bases de données – Cours 3
Le Langage de Manipulation de Données LMD Module 6.
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Bases de données : modèlisation et SGBD Séance 3.
Développement d’applications Problèmes relatifs aux BD.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
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.
Langages d’interrogation et de manipulation. N. ChaignaudGM4 - Base de données2 1. Algèbre relationnelle  Ensemble d’opérations permettant de manipuler.
Info Bases de données avancées
Transcription de la présentation:

Le Langage de Contrôle de Données LCD

2 Contrôle des Données Notion de Sous–Schéma –Restriction de la vision –Restriction des actions Privilèges –Systèmes –Objets Rôles –Regroupement de privilèges Contraintes évènementielles : Trigger (plus loin) –Contrôles avant une modification –Mises à jour automatique

3 Restreindre les accès à une BD Tout le monde ne peut pas VOIR et FAIRE n’importe quoi RESTRICTION des actions de la visionVIEW GRANT

4 Restriction des accès Sous-schéma ou schéma externe BD DBA Utilisateur1 Utilisateur2

5 L’objet VUE Une VUE est une table virtuelle : aucune implémentation physique de ses données La définition de la vue est enregistrée dans le DD A chaque appel d’une vue : le SGBD réactive sa construction à partir du DD Vue mono-table : crée à partir d’une table –Modifications possibles  modifications dans la table –Jointure en forme procédurale autorisée Vue multi-table –Crée par une jointure en forme relationnelle –Aucune modification autorisée

6 Utilisation d’une VUE Simplification de requêtes pour des non spécialistes Création de résultats intermédiaires pour des requêtes complexes Présentation différente de la base de données : schéma externe Mise en place de la confidentialité (VOIR) Une vue mono-table pourra être mise à jour avec contraintes

7 Création et suppression d’une VUE Création d’une vue Suppression d’une vue Pas de modification d’une vue CREATE [( OR REPLACE )] VIEW nom_vue [( liste des colonnes de la vue )] AS SELECT ………… [WITH CHECK OPTION [CONSTRAINT nom_cont]]; Sélection de lignes et colonnes DROP VIEW nom_vue;

8 Exemples de création de VUES (1) Vue mono-table avec restriction horizontale Vue mono-table avec restriction verticale CREATE VIEW enseignant_info AS SELECT * FROM enseignant WHERE idDip IN (SELECT idDip FROM diplome WHERE UPPER(nomDiplome) LIKE '%INFO%'); 1 Table CREATE VIEW etudiant_scol AS SELECT idEtu,nomEtu,adrEtu,idDip FROM etudiant;

9 Exemples de création de VUES (2) Vue mono-table avec restriction mixte CREATE VIEW etudiant_info (numEtudiant,nomEtudiant,adrEtudiant,dip) AS SELECT idEtu,nomEtu,adrEtu,idDip FROM etudiant WHERE idDip IN (SELECT idDip FROM diplome WHERE UPPER(nomDiplome) LIKE '%INFO%'); Nouveaux noms

10 Exemples de création de VUES (3) Vue mono-table avec colonnes virtuelles Pas de modification sur les colonnes virtuelles Modifications autorisées sur les colonnes de base  mise à jour instantanée ! CREATE VIEW employe_salaire (ne,nome,mensuel,annuel,journalier) AS SELECT idEmp,nomEmp,sal,sal*12,sal/22 FROM employe;

11 Exemples de création de VUES (4) Vue mono-table avec groupage Utilisation de la vue  reconstruction CREATE VIEW emp_service (ns,nombreEmp,moyenneSal) AS SELECT idService,COUNT(*),AVG(sal)FROM employe GROUP BY idService; SELECT * FROM emp_service WHERE nombreEmp>5; SELECT idService AS ns,COUNT(*) AS nombreEmp, AVG(sal) AS moyenneSal FROM employe GROUP BY ns HAVING COUNT(*) > 5;

12 Vues multi-tables Simplification de requêtes Pas de modifications possibles dans ce type de vue ( voir trigger ‘instead of’) Tables temporaires ‘virtuelles’ de travail Transformation de la présentation des données  Schéma externe CREATE VIEW emp_ser(nom_service, nom_employe) AS SELECT s.noms,e.nome FROM emp e,service s WHERE e.idSer=s.idSer; 2 Tables

13 Exemples de vues multi-tables Reconstitution des clients (UNION) Reconstitution des étudiants (JOINTURE) CREATE VIEW clients(idCli,nom,….,secteur) AS SELECT ct.*,’T’ FROM clients_toulouse ct UNION SELECT cb.*,’B’ FROM clients_bordeaux cb UNION SELECT cm.*,’M’ FROM clients_montpellier cm; CREATE VIEW etudiants(idEtu,nom,adresse, nomstage,entrstage) AS SELECT e.id,e.nom,e.adr,s.nomS,s.entrS FROM etudiant e,stage s WHERE e.id=s.id;

14 Vues avec Contraintes WITH CHECK OPTION Principe : le prédicat de sélection de lignes se transforme en contrainte Mise en place de contraintes spécifiques : Table T Contraintes génériques Vue VT Contraintes spécifiques

15 Exemple de vue avec Contrainte Les employés informaticiens ont des contraintes avantageuses … On ne pourra pas insérer un employé informaticien qui ne correspond pas aux contraintes du prédicat CREATE VIEW emp_info AS SELECT * FROM emp WHERE idSer IN (SELECT idSer FROM service WHERE UPPER(nomSer) LIKE '%INFO%') ANDsal > 3500 AND prime BETWEEN 500 AND 1000 WITH CHECK OPTION CONSTRAINT cko_emp_info;

16 Restriction des Actions : Les privilèges Privilèges Système et objet Contrôler l’accès à la base de données Sécurité système : couvre l'accès à la base de données et son utilisation au niveau du système (nom de l'utilisateur et mot de passe, espace disque alloué aux utilisateurs et opérations système autorisées par l'utilisateur) Sécurité données : couvre l'accès aux objets de la base de données et leur utilisation, ainsi que les actions exécutées sur ces objets par les utilisateurs

17 Privilèges système Plus de 100 privilèges système : Création d’utilisateurs (CREATE USER) Suppression de table (DROP ANY TABLE) Création d’espace disque (CREATE TABLESPACE) Sauvegarde des tables (BACKUP ANY TABLE) …….. Les privilèges peuvent être regroupés dans des rôles (voir plus loin)

18 Exemples de privilèges systèmes PrivilègesALTERCREATEDROP PROCEDURE  ANY PROCEDURE  TABLE  ANY TABLE  SESSION  TABLESPACE  USER  VIEW  ………

19 Délégation et suppression de privilèges Délégation : GRANT Suppression : REVOKE GRANT {privilège_système | rôle} [,{privilège2 | rôle2}...] TO {utilisateur1 | rôle | PUBLIC} [,{utilisateur2...}] [WITH ADMIN OPTION] ; REVOKE {privilège_système | rôle} [,{privilège2 | rôle2}...] FROM {utilisateur1 | rôle | PUBLIC} [,{utilisateur2...}] ;

20 Exemple de délégation et de suppression de privilèges Système GRANT CREATE SESSION, CREATE TABLE, DROP ANY TABLE TO michel; Attention : suppression d’autres tables REVOKE DROP ANY TABLE FROM michel; On supprime que ce privilège

21 Privilèges Objet Contrôle les actions sur les objets –Objets : tables, vues, séquences, …. –Actions : update, insert, execute, …. Le propriétaire (‘owner’) peut donner ces privilèges sur ses propres objets Les privilèges peuvent être donnés avec l’option de délégation

22 Privilèges Objet Délégation et suppression Délégation : GRANT Suppression : REVOKE GRANT privilège1 [,privilège2...] [(colonne [,colonne2.])] ON schéma.objet TO {utilisateur1 | rôle | PUBLIC} [,{utilisateur2...}] [WITH GRANT OPTION] ; REVOKE privilège1 [,privilège2...] [(colonne [,colonne2...])] ON schéma.objet FROM {utilisateur1 | rôle | PUBLIC} [,{utilisateur2...}] [CASCADE CONSTRAINTS] ;

23 Privilèges Objet Exemples GRANT INSERT,UPDATE (adr,tel) ON etud_info TO Martine, Nicole ; GRANT DELETE, UPDATE, INSERT ON etud_info TO Michel WITH GRANT OPTION; REVOKE UPDATE (tel) ON etud_info FROM Nicole ;

24 Les privilèges Objet : objets et actions possibles TableVueSéquence Procédure Fonction Package Snapshot ALTER  DELETE  EXECUTE  INDEX  INSERT  REFERENCES  SELECT  UPDATE  Objets Actions

25 Les Rôles Regroupement de privilèges pour des familles d’utilisateur Facilitent la gestion des autorisations des privilèges objet en évitant les ordres GRANT Un rôle par défaut est donné à un utilisateur Un utilisateur peut posséder plusieurs rôles mais n’est connecté qu’avec un seul à la fois On peut donner un mot de passe pour certains rôles

26 Les Rôles : évitent le produit cartésien ROLE1 ROLE2 ROLE3 Privilège1 Privilège6 Privilège5 Privilège4 Privilège3 Privilège2

27 Manipulation des rôles : Ordres Création / Modification d’un rôle Remplissage et attribution d’un rôle Rôle par défaut ou activation Suppression / Révocation d’un rôle {CREATE|ALTER} ROLE nom_rôle {NOT IDENTIFIED | IDENTIFIED {BY mot_de_passe | EXTERNALLY}}; GRANT {privilège1 | rôle1} TO nom_rôle; GRANT {privilège2 | rôle2} TO nom_rôle; GRANT ROLE nom_role TO user; SET ROLE nom_rôle [IDENTIFIED BY mot_de_passe]; DROP ROLE nom_rôle; REVOKE ROLE nom_rôle FROM user;

28 Manipulation des rôles : Exemples CREATE ROLE secretariat_info ; GRANT SELECT,UPDATE (adr,tel) ON ens_info TO secretariat_info; GRANT SELECT,INSERT,UPDATE ON etud_info TO secretariat_info; GRANT SELECT,INSERT ON cours_info TO secretariat_info; GRANT secretariat_info TO laurent, thomas, corinne ;

29 Rôles prédéfinis DBA –Tous les privilèges système et objet RESOURCE –Création de tous les objets ‘classiques’ –Propriétaire des données (‘owner’) CONNECT –Connexion à la base –Attente de privilèges objet EXP_FULL_DATABASE –Exportation de tous les objets IMP_FULL_DATABASE –Importation d’objets

30 Dictionnaire de données ROLE_SYS_PRIVS –privilèges systèmes accordés aux rôles ROLE_TAB_PRIVS –privilèges objets accordés aux rôles USER_ROLE_PRIVS –rôles accessibles par l’utilisateur