Bases de données et sites WEB



Documents pareils
Gestion des utilisateurs et de leurs droits

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite)

Partie II Cours 3 (suite) : Sécurité de bases de données

Bases de Données relationnelles et leurs systèmes de Gestion

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Notes de cours : bases de données distribuées et repliquées

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Administration des Bases de Données Oracle

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Administration des bases de données. Jean-Yves Antoine

Bases de données et sites WEB Licence d informatique LI345

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

TP Administration Oracle

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

TP Contraintes - Triggers

TP11 - Administration/Tuning

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

A QUOI SERVENT LES BASES DE DONNÉES?

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Administration des bases de données

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Intégrité des données

Cours Bases de données 2ème année IUT

Olivier Mondet

Cours Bases de données 2ème année IUT

//////////////////////////////////////////////////////////////////// Administration bases de données

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Le Langage De Description De Données(LDD)

Présentation du module Base de données spatio-temporelles

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

CHAPITRE 1 ARCHITECTURE

Fascicule des Travaux Pratiques Oracle

CATALOGUE FORMATIONS DOMAINE Bases de données

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

SQL Historique

Auto-évaluation Oracle: cours de base

Ora2Pg Performances. (C) 2013 Gilles Darold

Les bases de données

Bases de données avancées

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

AGRÉGATION «ÉCONOMIE ET GESTION»

Du 10 Fév. au 14 Mars 2014

A QUOI SERVENT LES BASES DE DONNÉES?

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

PHP 5. La base de données MySql. A. Belaïd 1

Le Langage SQL version Oracle

CREATION WEB DYNAMIQUE

Application web de gestion de comptes en banques

Langage SQL : créer et interroger une base

Bases de Données Avancées

Procédure d installation :

Les bases de l optimisation SQL avec DB2 for i

Master Exploration Informatique des données DataWareHouse

Gestion des transactions et accès concurrents dans les bases de données relationnelles

OpenPaaS Le réseau social d'entreprise

Systèmes de Gestion de Bases de Données

Bases de données relationnelles

PHP 4 PARTIE : BASE DE DONNEES

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Secteur Tertiaire Informatique Filière étude - développement. Accueil. Apprentissage. Période en entreprise. Evaluation.

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Gestion de base de données

Les déclencheurs. Version 1.0. Grégory CASANOVA

Cours Bases de données 2ème année IUT

420-PK6-SL Banques de données Avancées UTILISATEURS

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Mysql. Les requêtes préparées Prepared statements

Session S12 Les bases de l optimisation SQL avec DB2 for i

Pré-conditions : Evénement déclencheur : le client souhaite un virement. Description du déroulement du cas : Description des Use cases

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

Bases de données cours 1

Oracle : Administration

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

MySQL / SQL EXEMPLES

Intégrité sémantique dans les bases de données relationnelles

Création et Gestion des tables

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Bases de Données Réparties

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

Introduction au Système de Gestion de Base de Données et aux Base de Données

Cours: Administration d'une Base de Données

Le langage SQL (première partie) c Olivier Caron

Compte-rendu de projet de Système de gestion de base de données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Transcription:

Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1

Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues 2

Sécurité Confidentialité L information ne doit pas être accessible aux utilisateurs non autorisés Intégrité Les données ne peuvent être modifiées que par les utilisateurs habilités à le faire. Disponibilité Les utilisateurs ayant le droit de faire certaines actions doivent pouvoir accéder aux données correspondantes. Les SGBD fournissent différents moyens pour garantir la sécurité : authentification, contrôle d accès, mécanismes d audit, vues. 3

Authentification Chaque BD Oracle possède une liste de noms d utilisateurs, et un mot de passe associé. Vérifié quand un utilisateur veut utiliser des données, des ressources, des applications, par le système d exploitation, le réseau, la base Oracle. Authentification dans Oracle : cryptage du mot de passe, verrouillage des comptes, expiration du mot de passe, vérification de la complexité du mot de passe. A la création d un nouvel utilisateur, on définit un espace de stockage des tables par défaut (default tablespace), un espace de stockage de tables temporaire (temporary tablespace), des quotas sur ces espaces. Un profil délimitant l accès aux ressources 4

Autorisation Tous les éléments SQL ont un propriétaire. Un propriétaire d un objet possède tous les droits (privilèges) sur cet objet. On peut donner des droits à d autres utilisateurs pour accéder aux données, pour les modifier, pour obtenir des ressources, Les droits sont accordés (ou refusés) à différents niveaux (objets, schémas, tables, tuples, CPU, ). On peut accorder des droits individuellement, ou par groupes. 5

Privilèges Un privilège est un droit accordé pour utiliser un type d instruction SQL, ou pour accéder à un objet. Principe : Accorder des privilèges aux utilisateurs pour qu ils puissent travailler. N accorder aux utilisateurs que les privilèges dont ils ont besoin. Trop de privilèges peut compromettre la sécurité. Les privilèges sont accordés individuellement ou par groupe d utilisateurs (role) Deux types de privilèges : System privilege Schema Object Privilege 6

Droits d effectuer certaines actions : System Privileges GRANT <system_privilege> TO <user_list> PUBLIC [WITH GRANT OPTION] GRANT : Accorder <System privilege> : liste de privilèges Exemples : CREATE INDEX, CREATE PROCEDURE, DELETE ANY TABLE, ALTER USER, CREATE VIEW, DROP ANY VIEW, DROP USER, TO <user_list> : liste d utilisateurs autorisés TO PUBLIC donne les droits à tous les utilisateurs. WITH GRANT OPTION:permet d accorder(transmettre) le privilège à d autres utilisateurs. Ex: GRANT CREATE TABLE, CREATE TRIGGER TO user1, user2; 7

Object Privileges Droits d effectuer des actions sur des objets du schéma: GRANT <privilege_list> ON <database object> TO <user_list> PUBLIC [WITH GRANT OPTION] <Privilege list> : opérations du langage de manipulation de données Ex: ALTER, DELETE, EXECUTE, INSERT, UPDATE, <Database_object> : tables, vues, procedures, row, etc. Ex: GRANT insert, update(fonction, Salaire) ON EMP TO user2; GRANT all ON dept TO user3; 8

Utilisation des privilèges Pour créer une vue, il faut : Avoir obtenu un des privilèges système suivants (explicitement ou par un rôle) : CREATE VIEW (créer une vue dans son propre schéma) CREATE ANY VIEW (créer une vue dans un autre schéma) Avoir un des privilèges suivants :, INSERT, UPDATE, DELETE sur tous les objets impliqués dans la vue ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE 9

Transmission des privilèges Pour accorder un privilège à un autre utilisateur, il faut posséder le privilège avec l option GRANT. Ex : EMP(ID_EMP, NOM, SALAIRE, ID_SERVICE) SERVICE(ID_SERV, INTITULE, ID_DIR) Max possède le droit sur EMP. Il peut le transmettre à un autre utilisateur (Jules), avec ou sans l option GRANT. Si Jules a l option GRANT, il peut également transmettre ce droit, sinon, il en a seulement l usage. 10

Transmission des privilèges On peut transmettre un privilège moins général que celui qu on possède. Max possède le droit INSERT sur EMP, avec l option GRANT. Il peut transmettre INSERT(NOM) sur EMP à un autre utilisateur. Un utilisateur peut obtenir le même privilège de la part de plusieurs utilisateurs différents, et le posséder de plusieurs manières (par ex. avec ou sans option GRANT). 11

Exemple Max est le propriétaire du schéma Emp, Service. Il effectue les ordres : GRANT, INSERT ON emp TO jules, lulu WITH GRANT OPTION; GRANT, INSERT ON Service TO jules, lulu WITH GRANT OPTION; Jules effectue les ordres suivants : GRANT, INSERT ON emp TO zoe; GRANT ON service TO zoe; Lulu effectue les ordres suivants : GRANT, INSERT(NOM) ON emp TO zoe; GRANT ON service TO zoe; Zoé a reçu les droits sur Emp et Service de deux utilisateurs différents. Elle a aussi reçu le droit INSERT(NOM) de deux façons différentes. 12

Diagramme des droits Jules On Serv Max on Serv Max INSERT On Serv Max Max INSERT on Emp Lulu On Serv Lulu Jules OnEmp : with grant option : propriétaire Jules INSERT Zoé INSERT(NOM) onemp Zoé onserv Zoé Zoé INSERT Lulu INSERT 13

Annulation des privilèges La transmission des droits conduit à un recouvrement des privilèges. SQL maintient un graphe des privilèges gardant la trace des privilèges et de leurs origines (utile pour l annulation des privilèges). Pour annuler des privilèges, on utilise la commande REVOKE : REVOKE <system_privilege> FROM <user_list>; REVOKE <object_privilege list> ON <database object> FROM <user_list>; Ex: REVOKE update ON emp FROM user1; Si l utilisateur a transmis ces privilèges à d autres, le système renvoie une erreur et ne supprime pas les privilèges. Pour les supprimer, il faut utiliser l option CASCADE. 14

REVOKE REVOKE peut prendre 2 options RESTRICT et CASCADE. Lorsqu'on utilise REVOKE CASCADE, on supprime tous les privilèges transmis en cascade. (Un privilège obtenu par transmission (grant option) est abandonné si on supprime le privilège à celui qui l a transmis). L option REVOKE RESTRICT ne supprime que les privilèges qui n ont pas été transmis. S ils ont été transmis, le système renvoie une erreur. 15

Exemple Jules On Serv Max on Serv Max INSERT On Serv Max Max INSERT on Emp Lulu On Serv Lulu Jules OnEmp Jules INSERT Zoé INSERT(NOM) onemp Zoé onserv REVOKE,INSERT ON emp FROM lulu; Renvoie error Zoé Zoé INSERT Lulu INSERT 16

Exemple Jules On Serv Max on Serv Max INSERT On Serv Max Max INSERT on Emp Lulu On Serv Lulu Jules OnEmp Jules INSERT Zoé INSERT(NOM) onemp Zoé onserv Zoé REVOKE,INSERT ON emp FROM lulu CASCADE; Zoé INSERT Lulu INSERT 17

Rôles Les rôles sont des groupes nommés de privilèges, qu on accorde, en groupe, à des utilisateurs ou à d autres rôles. Permet de gérer les privilèges pour une application (ex: ensemble de privilèges nécessaires pour exécuter l application Paye) Pour un groupe d utilisateurs (privilèges des directeurs de département, des responsables de la paye, etc.) 18

Exemple Définition du role manager : CREATE ROLE manager; GRANT CREATE VIEW, CREATE PROCEDURE TO manager; GRANT, INSERT, UPDATE(SAL) ON emp TO manager; GRANT, INSERT, UPDATE ON dept TO manager; GRANT manager TO user1, user2, user3; Pour annuler : REVOKE manager FROM user1; REVOKE INSERT ON emp FROM manager; Pour annuler un role, il faut avoir le privilège GRANT ANY ROLE, ou avoir les privilèges WITH ADMIN OPTION. 19

Roles prédéfinis Oracle a des rôles prédéfinis : CONNECT : INSERT, UPDATE, DELETE, sur les relations dont on a les privilèges. Permet de créer des vues. RESOURCE : crée les tables, les vues, les triggers, les procédures. DBA : tous les privilèges système avec ADMIN OPTION EXP_FULL_DATABASE : tous les privilèges pour exporter les données de la base IMP_FULL_DATABASE : tous les privilèges pour importer des données. 20

Profils Chaque utilisateur a un profil qui spécifie les ressources auxquelles il a droit. Permet de réguler la charge, quand il y a beaucoup d utilisateurs. Plusieurs types de ressources Ressources système (nombre des sessions concurrentes, temps CPU, temps de connexion, ) Restrictions concernant le mot de passe Blocage après un nombre d essais sans succès Délai d expiration du mot de passe Réutilisation du mot de passe CREATE PROFILE profil LIMIT <resource parameters> <password parameters>; 21

Ressources système (1) SESSIONS_PER_USER Une session créée à chaque connexion Consomme du temps CPU, et de la mémoire CPU_PER_SESSION Limite le temps CPU par session (en centièmes de secondes) Permet d éviter de trop grandes consommations, qui pénalisent les autres utilisateurs CPU_PER_CALL Limite le temps CPU par appel 22

Ressources système (2) CONNECT_TIME Limite le temps de connection d un utilisateur IDLE_TIME Limite le temps d inactivité LOGICAL_READS_PER_SESSION L accès disque est une des opérations les plus coûteuses Limite le nombre d accès disque autorisés pour une session LOGICAL_READS_PER_CALL Limite le nombre d accès disque autorisés pour une instruction 23

Ressources système (3) PRIVATE_SGA (system global area), Limite la taille de l espace système privé exprimée en bits. COMPOSITE_LIMIT Permet de définir une limite globale d un ensemble de ressources pour une session. Le coût total d une session est calculé en faisant une moyenne pondérée des paramètres suivants : CPU_PER_SESSION, CONNECT_TIME, PRIVATE_SGA, LOGICAL_READS_PER_SESSION 24

Ressources Password FAILED_LOGIN_ATTEMPTS Limite le nombre d essais infructueux PASSWORD_LIFE_TIME Limite la durée d expiration du mot de passe (en nb de jours) PASSWORD_REUSE_TIME Limite le nombre de jour avant que le mot de passe puisse être réutilisé PASSWORD_REUSE_MAX Limite le nombre de changements de mots de passe avant de pouvoir réutiliser celui-ci. Réutilisation du mot de passe : Si PASSWORD_REUSE_TIME est 30 et PASSWORD_REUSE_MAX est 10, l utilisateur peut réutiliser son mot de passe au bout de 30 jours, s il a été changé 10 fois. Si on spécifie UNLIMITED pour un des deux paramètres, l utilisateur ne peut jamais réutiliser un mot de passe. 25

Exemples CREATE PROFILE app_user LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL 3000 CONNECT_TIME 45 LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL 1000 PRIVATE_SGA 15K COMPOSITE_LIMIT 5000000; CREATE PROFILE new_profile LIMIT PASSWORD_REUSE_MAX 10 PASSWORD_REUSE_TIME 30; 26

Dépassement des limites Dépassement de CONNECT_TIME ou IDLE_TIME : - la transaction est défaite - la session est terminée - le système renvoie une erreur en cas de nouvelle instruction Dépassement des autres limites : - l opération est annulée - l instruction en cours est défaite, - le système renvoie une erreur. - l utilisateur peut valider ou annuler la transaction en cours, et doit terminer la session. 27

Surveillance (Audit) Prévoir les ressources nécessaires pour des actions particulières Détecter des activités anormales (ex: suppression de données, d objets du schéma par des utilisateurs non autorisés) Collecter des informations (statistiques) sur les différentes activités (fréquence des modifications de chaque table, nombre d accès disque, nombre de sessions concurrentes, nombre d exécutions réussies, nombre d échecs, activités d un utilisateur précis, etc.). Permet d ajuster les paramètres pour améliorer les performances (tuning). 28

Vues Trois visions d une BD : Vues (BD virtuelle) Relations (niveau conceptuel) Pages physiques (stockage des données) Pourquoi utiliser des vues? Pour faciliter certaines requêtes (ou les exprimer plus simplement) Pour la modularité (niveau d abstraction plus élevé) Pour protéger des données 29

Vues Une vue est une relation virtuelle, qui contient le résultat d une requête Q sur la base. Syntaxe : CREATE VIEW nom_vue [(att1, att2...)] AS requête_sql [ WITH CHECK OPTION ] nom_vue désigne le nom de la relation virtuelle att1,... (optionnel) permet de nommer les attributs de la vue (attributs de la requête par défaut) requête_sql désigne une requête SQL standard qui définit le contenu de la vue (définition de la vue) WITH CHECK OPTION : protège des mises à jour intempestives 30

Exemple ENS(ID_ENS,NOM,GRADE,DOMAINE,SALAIRE,ADRESSE,TEL) COURS(ID_COURS,TITRE,NIVEAU,ID_ENS) CREATE VIEW ProfsdeL3 (ID, NOM) AS ID_ENS,NOM FROM ENS E,COURS C WHERE E.GRADE = Professeur AND E.ID_ENS=C.ID_ENS AND NIVEAU= L3 31

Confidentialité et vues Les vues permettent de cacher de l information à des utilisateurs non autorisés. On peut cacher des attributs, ou/et des nuplets. Ex1 : Cacher le salaire, l adresse, le téléphone des enseignants CREATE VIEW Enseignants AS ID_ENS,NOM,GRADE,DOMAINE FROM ENS Ex2 : Enseignants informaticiens CREATE VIEW EnseignantsInformaticiens AS ID_ENS,NOM,GRADE FROM ENS E WHERE E.DOMAINE = Informatique 32

Conclusion La protection des données de la base est un enjeu important. Plusieurs moyens Filtrer les connexions Donner des droits spécifiques aux utilisateurs Surveiller l utilisation des données Cacher des informations à l aide de vues Cryptage des données 33