DAC (Discretionary Access Control) RBAC (Role-Based Access Control)

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

Gestion des utilisateurs et de leurs droits

Bases de données et sites WEB

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

Gestion des droits d accès. Quelques exemples de vulnérabilité

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.

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

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

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

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

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

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

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

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

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

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

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

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

Olivier Mondet

Master Exploration Informatique des données DataWareHouse

TP Administration Oracle

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

CATALOGUE FORMATIONS DOMAINE Bases de données

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

SQL Historique

Auto-évaluation Oracle: cours de base

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

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

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

Base de données II Module 3b

Les bases de données

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)

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

TP Contraintes - Triggers

Cours: Administration d'une Base de Données

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

Introduction aux bases de données

I/ Présentation. On considère une BD CIRQUE dont le schema conceptuel : PERSONNEL _CIRQUE (NOM, ROLE) ;

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

Intégrité des données

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

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

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

OpenPaaS Le réseau social d'entreprise

Devoir Data WareHouse

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

Le Langage SQL version Oracle

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

Département Génie Informatique

Le Langage De Description De Données(LDD)

Sécuriser les bases de données ORACLE

Compétences Business Objects

Pour les débutants. langage de définition des données

TP Bases de données réparties

Bases de Données Avancées

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

CHAPITRE 1 ARCHITECTURE

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer

Bases de Données Réparties

Cours de SQL SERVER 2005 SQL SERVER 2005

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

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

Modélisation et Gestion des bases de données avec mysql workbench

Information utiles. webpage : Google+ : digiusto/

Bases de données - Modèle relationnel

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

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

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Bases de données. Chapitre 1. Introduction

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

Bases de Données Avancées

Notion de base de données

Quelques aspects du Relationnel-Objet du SGBD Oracle

Du 10 Fév. au 14 Mars 2014

Systèmes de Gestion de Bases de Données

IFT3030 Base de données. Chapitre 1 Introduction

Cours Bases de données

Bases de données avancées Introduction

SQL Server 2012 et SQL Server 2014

Bases de Données OLAP

Langage SQL : créer et interroger une base

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

Chapitre III Architecture de Base de Données Oracle

Java DataBaseConnectivity

Java et les bases de données

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

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

Description de SQL SERVER. historique

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

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

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

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

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Bases de données relationnelles

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Chapitre 3. Sécurité des Objets

Transcription:

1 DAC (Discretionary Access Control) RBAC (Role-Based Access Control)

Concepts de base 2 n Sujets n Utilisateurs ou applications n PUBLIC : n importe quel utilisateur de la BD n Objets n Tables, objets, vues, fonctions/procédures n Privilèges ou autorisations n SELECT : privilège pour lire toutes le colonnes de la donnée ainsi que les colonnes insérées plus tard avec ALTER TABLE n INSERT/UPDATE : privilège pour insérer/modifier des lignes n DELETE : privilège pour supprimer des lignes n REFERENCES : privilège pour définir des clés étrangères (référencier d autres tables ou vues) n EXECUTE : privilège pour exécuter une fonction/procédure

DAC (Discretionary Access Control) 3 n Consiste à attribuer directement aux sujets des privilèges sur les objets et à les vérifier lors de l accès n Gestion de privilèges n Le sujet qui crée une table automatiquement a tous les privilèges sur celle-ci n GRANT : permet d attribuer un privilège n GRANT <liste de privilèges> ON <objet> TO <liste de sujets> n GRANT OPTION : cette option permet au sujet recevant le privilège de l attribuer à d autres utilisateurs n GRANT <liste de privilèges> ON <objet> TO <liste de sujets> WITH GRANT OPTION 3

Exemples 4 n Considérez les tables suivantes crées par Joe. Sailors Boats Reservs sid sname rating age bid bname color sid bid day 4 GRANT INSERT, DELETE ON Reservs TO Yuppy WITH GRANT OPTION GRANT SELECT ON Reservs TO Michel GRANT SELECT ON Sailors TO Michel WITH GRANT OPTION GRANT INSERT (sid,sname,age) ON Sailors TO Michel GRANT REFERENCES (bid) ON Boats TO Bill

REVOKE 5 n REVOKE [CASCADE RESTRICT]: permet de révoquer un privilège. n CASCADE : révoque un privilège et ceux qui en découlent n RESTRICT : rejette la révocation si en plus de l utilisateur spécifié d autres utilisateurs vont voir ses privilèges affectés. Cette option est celle par défaut.

Exemples 6 n Considérer les commandes suivantes : n Joe (qui a crée Sailors) exécute : n GRANT SELECT ON Sailors TO Art WITH GRANT OPTION n Art exécute : n GRANT SELECT ON Sailors TO Bob WITH GRANT OPTION n Qu est-ce qui se passe si Joe exécute : n REVOKE SELECT ON Sailors FROM Art CASCADE ou n REVOKE GRANT OPTION FOR SELECT ON Sailors FROM Art CASCADE 6

Graphes d autorisation 7 n Les effets des commandes GRANT et REVOKE peuvent être décrits dans un graphe d autorisations n Un graphe concerne une seule donnée n Les nœuds sont les utilisateurs n Les arcs indiquent comment les privilèges sont accordés 7

Exemple de graphe d autorisation 8 n Joe exécute : 1. GRANT SELECT ON Sailors TO Art WITH GRANT OPTION n Art exécute : 2. GRANT SELECT ON Sailors TO Bob WITH GRANT OPTION Syst em Graphe d autorisation de la table Sailors n Bob exécute 3. GRANT SELECT ON Sailors TO Art WITH GRANT OPTION n Joe exécute 4. GRANT SELECT ON Sailors TO Cal WITH GRANT OPTION n Cal exécute Joe 4 1 6 3 Art 2 5. GRANT SELECT ON Sailors TO Bob WITH GRANT OPTION n Joe exécute 6. REVOKE SELECT ON Sailors FROM Art CASCADE Cal 5 Bob

RBAC 9 n DAC n est pas applicable à des systèmes complexes avec des centaines/milliers d utilisateurs n Inconvénients de DAC n Approche basée sur l attribution de droits par sujet (utilisateur) donc difficulté pour gérer la dynamicité des privilèges n Sorties du système (entreprise) n Modification des droits (changement de responsabilités) 9

RBAC 10 n Proposé pour des systèmes très grands avec un important nombre d utilisateurs et de données n Contrôle d accès à base de rôles n Modèle dans lequel les décisions d accès dépendent du rôle auquel l utilisateur est attaché n Concepts de base n Sujets (utilisateurs) n Privilège. Concerne un droit (opération) quelconque sur une donnée, plusieurs droits sur une donnée ou plusieurs droits sur plusieurs données n Rôles. Entité déterminant une activité d entreprise (comptable, chef de projet, chef de département, cassier, etc.) n Deux approches : modèles ANSI et role graphe 10

Les rôles 11 n Sont définis par une autorité centrale n Sont identifiés par un nom unique n Peuvent être organisés en une hiérarchie ou un graphe. Attention aux n Cycles (redondance) n Conflits d intérêt n Sont attribués aux utilisateurs ou groups d utilisateurs n Mapping rôle-utilisateur n Plusieurs rôles peuvent être attribués à un utilisateur n Plusieurs utilisateurs peuvent partager plusieurs rôles 11 n Facilité de gestion rôle-utilisateur

Les groupes d utilisateurs et les rôles 12 n Groupes d utilisateurs n Facilite la gestion des utilisateurs n Les membres du group peuvent changer fréquemment n La gestion des groupes peut se faire par le gestionnaire des ressources humaines n Rôles 12 n les rôles sont définis avant la mise en place du système n Les privilèges attribués aux rôles varient très peu n La gestion des rôles doit se faire par un utilisateur de confiance

Composants du modèle basé sur les rôles 13 Graphe de groupes Graphe de rôles Privilèges Lisa Joe Bob RoleMax P1 Lire(O1) ChefProjet Comptabl e Écrire(O1) P2 Ingénieur Comptabl e Ingénieur Programmeur Lire(02) partage (O2) Stagiaire P3 écrire(o2) Base RoleBase 13

Propriétés du graphe de rôles 14 n Héritage n r1 r2 indique que r1 est junior de r2 et que les privilèges de r1 sont hérités à r2 n privilèges(r1) privilèges(r2) n Privilèges directs n Privilèges attribués directement au rôle par l administrateur du graphe n Privilèges effectifs n Privilèges directs plus privilèges hérités n Graphe acyclique 14 n Pas de redondance de privilèges n Un arc r1 r2 doit être ajouté si privilèges(r1) privilèges(r2)

Gestion du graphe de rôles 15 n roleaddition n Si pas de cycle, le rôle est ajouté n permitionaddition n Un nouveau privilège est ajouté à un rôle n permitiondeletion n Suppression d un privilège d un rôle n roledeletion n Suppression d un rôle n edgeinsertion n Insertion d un arc si pas de cycle n edgedeletion n Suppression d un arc si pas de cycle 15 n Dans toutes les fonctions, si nécessaire, les privilèges/arcs sont réorganisés pour éviter les redondances

Exemple 1 de gestion de graphe de rôles 16 Graphe A Graphe A avec p3 de R5 supprimé R1 p6, p1, p2, p3, p4, p5 R1 p6, p1, p2, p4, p3, p5 p4, p5 R2 R3 R2 R3 p5, p1, p2 p4, p1, p3 p5, p1, p2 p4, p1, p3 R4 R5 R4 R5 p1, p2 p1, p3 p1, p2 p1, p1 p3 16 Pas de cycle Pas de redondance de privilèges i.e., (privilèges(r1) privilèges(r2))

Exemple 2 de gestion de graphe de rôles 17 Graphe A, la suite Graphe A avec p7 ajouté à R5 R1 p6, p1, p2, p4, p5 R1 p6, p1, p2, p4, p5, p7 R2 R3 R2 R3 p5, p1, p2 p4, p1 p5, p1, p2, p7 p4, p1, p7 R4 R5 R4 R5 p1, p2 p1 p1, p2, p7 p1, p7 17

Conseils pour définir une hiérarchie de rôles n Ne pas faire de la hiérarchie de rôles un miroir de la hiérarchie de l entreprise 18 n Surveiller les privilèges des rôles n Considérer les groupes d utilisateurs n Considérer de rôles abstraits comptable a1, a2, c1, c2, b1,b2 payeur p1, p2, p3 c1, c2, b1,b2 comptable payeur a1, a2, c1, c2, b1,b2 p1, p2, p3 c1, c2, b1,b2 accèsbaseinfo accèsbasebâtiment c1, c2 b1, b2 18 Avec des rôles abstraits Sans des rôles abstraits

Conclusion 19 n Le control d accès est vital pour assurer la confidentialité des données n DAC, MAC, RBAC : les trois grandes approches n n Chacun a ses avantages et désavantages RBAC se révèle le plus adapté aux systèmes actuels 19

Bibliographie 20 n Security, Privacy, and Trust in Data Management. Milan Petkovic, Willem Jonker Eds. 2007. n Database Management Systems. Raghu Ramakrishnan, Johannes Gehrke. International 3rd Edition, 2003. 20

21

Les rôles dans Oracle 22 n Privilège n Droit d exécuter une sentence SQL ou d accéder les objets (tables, vues, objets, etc.) d un autre utilisateur n Un privilège représente le couple (objet, privilège) n 173 privilèges dans Oracle 10g (SYSTEM_PRIVILEGE_MAP) n Rôle n Ensemble de privilèges qui peut être attribué aux utilisateurs ou aux rôles

Types de privilèges 23 n Privilèges objets n Privilèges permettant la gestion des objets crées par les utilisateurs n CREATE, SELECT, INSERT, etc. n Privilèges système n Privilèges permettant la gestion du système de bases de données n Ne sont pas liés à un objet ou schéma n CREATE SESSION, CREATE ROLE, ALTER ROLE, etc. n Rôles n Peuvent contenir de privilèges objets et système

Privilèges objets Objet Tables Views Sequence Packeges, Procedures, Functions (Java classes, sources...) Materialized Views Directories Libraries User defined types Operators Indextypes Privilège select, insert, update, delete, alter, debug, flashback, on commit refresh, query rewrite, references, all, index select, insert, update, delete, under, references, flashback, debug alter, select execute, debug delete, flashback, insert, select, update read, write execute execute, debug, under execute execute 24

Privilèges sur les objets 25

Privilèges système 26 n Définis par Oracle et pas modifiables par les utilisateurs n Peuvent être attribués uniquement par les administrateurs du système ayant comme privilèges n Le privilège à attribuer avec l option ADMIN OPTION n Le privilège général GRANT ANY PRIVILEGE n Les privilèges sur les objets ne peuvent pas être attribués avec des privilèges systèmes ou rôles dans la même sentence GRANT

L option ADMIN OPTION 27 n Utilisable avec les rôles et les privilèges système n Semblable à WITH GRANT OPTION des privilèges objets n Le receveur peut n Attribuer ou révoquer le rôle ou le privilège système n Attribuer le rôle ou le privilège système avec l option ADMIN OPTION n Modifier (ALTER) ou supprimer le rôle n Pour annuler l option, il faut révoquer le privilège n Exemples n GRANT myrole TO alice WITH ADMIN OPTION; n REVOKE myrole FROM alice;

Avantages de l utilisation de rôles 28 n Gestion de privilèges réduite n Au lieu d attribuer un ensemble de privilèges aux utilisateurs, un par un, les privilèges sont attribués à un rôle et uniquement le rôle est attribué aux utilisateurs n Gestion dynamique des privilèges n Si les privilèges d un groupe change, uniquement le rôle sera modifié n Surveillance plus simple n Plus facile de vérifier les privilèges des utilisateurs

Utilisation des rôles 29 n Pour la gestion des privilèges d un groupe d utilisateurs n Pour la gestion des privilèges d une application de base de données n Attribution à un rôle des privilèges nécessaires à l exécution d une application n Le rôle d application crée sera attribué aux utilisateurs de l application

Rôles prédéfinis d Oracle 30 n Définis automatiquement lors de l installation d Oracle n Aident à la gestion de la base de données n Peuvent être gérés comme les rôles définis par un utilisateur n Exemples n CONNECT : CREATE VIEW, CREATE TABLE, ALTER SESSION, CREATE CLUSTER, CREATE SESSION, CREATE SYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK n RESOURCE : CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE

Gestion de rôles 31 n Création/suppression n Un rôle peut être crée et supprimé n Sécurisation n Les rôles peuvent être protégés par un mot de passe pour éviter que n importe qui les ajoute/supprime/attribue de privilèges n Attribution n Un rôle peut être attribué aux utilisateurs ou aux rôles n On peut attribuer des privilèges aux rôles

Création/suppression de rôles 32 n Création de rôles n Uniquement par des utilisateurs n Ayant le privilège CREATE ROLE n Modification de rôles n Par les utilisateurs n Ayant eu attribué le rôle avec l option ADMIN OPTION n Ayant le privilège ALTER ANY ROLE n Suppression de rôles n Par les utilisateurs n Ayant créé le rôle n Ayant eu attribué le rôle avec l option ADMIN OPTION n Ayant le privilège DROP ANY ROLE

Création/suppression de rôles 33 n Création et sécurisation n Les rôles peuvent être crées avec un mot de passe n CREATE ROLE myrole; n CREATE ROLE myrole IDENTIFIED BY my_pwd; n Un mot de passe peut également être attribué à un rôle existant n ALTER ROLE myrole IDENTIFIED BY my_pwd; n Suppression n DROP ROLE myrole;

Attribution de privilèges à un rôle 34 n L attribution peut être fait par les utilisateurs n Ayant créé le rôle n Ayant eu le rôle attribué (avec ou sans l option ADMIN OPTION) n Ayant le privilège système GRANT ANY OBJECT PRIVILEGE (pour les privilèges objets) n Ayant le privilège système GRANT ANY PRIVILEGE (pour les privilèges système) n Exemples n GRANT SELECT ON mytable TO myrole; n GRANT SELECT ON mytable TO myrole1, myrole2; n GRANT SELECT, UPDATE ON mytable TO myrole;

Suppression de privilèges à un rôle 35 n La suppression peut être faite par des utilisateurs n Ayant préalablement attribué le privilège au rôle n Ayant le privilège système GRANT ANY OBJECT PRIVILEGE n Exemples n REVOKE SELECT ON mytable FROM myrole; n REVOKE ALL ON mytable FROM myrole;

Attribution de rôles 36 n Les rôles peuvent être attribués uniquement par les utilisateurs n Ayant eu le rôle attribué avec l option ADMIN OPTION n Le privilège général GRANT ANY ROLE n Exemples n Attribution de rôle à rôle n GRANT myrole TO myrole2; n GRANT myrole, myrole3 TO myrole2, myrole4; n Interdiction de cycles! -> GRANT myrole2 TO myrole; n Attribution de rôle aux utilisateurs n GRANT myrole TO bob, alice; n REVOKE myrole TO bob;

Révocation de rôles 37 n Un rôle peut être révoqué par les utilisateurs n Ayant attribué le rôle n Ayant eu le rôle attribué avec l option ADMIN OPTION n Ayant le privilège système GRANT ANY ROLE n Exemples n REVOKE myrole TO bob; n REVOKE myrole TO medecins;

Le privilège GRANT ANY OBJECT PRIVILEGE 38 n Permet d attribuer/révoquer des privilèges à la place d autres utilisateurs n Trois utilisateurs : A, B, C n A est un administrateur de la BD qui possède le privilège GRANT ANY OBJECT PRIVILEGE n B a créé la table table_b n L utilisateur A exécute GRANT SELECT ON B.table_b TO C; n Cela est comme si B a attribué le droit directement à C n La même opération peut être faite avec REVOKE

Où trouver l information sur les privilèges? 39 n Dans les dictionnaires d Oracle n Un dictionnaire est une vue gérée automatiquement par Oracle n Les dictionnaires portent sur tout type d information liée à la BD n Utilisateurs n Sessions n Les objets n Les privilèges n Les rôles n Etc.

Quelques dictionnaires 40 n Privilèges n USER_COL_PRIVS : montre les colonnes des objets sur lesquelles l utilisateur actuel est le owner/grantor/grantee n USER_TAB_PRIVS : montre les privilèges sur les objets où l utilisateur est le grantee n Rôles n DBA_ROLES : montre tous les rôles du système n USER_ROLE_PRIVS : montre les rôles attribués à l utilisateur n Système n USER_SYS_PRIVS : montre les privilèges système attribués à l utilisateur n SYSTEM_PRIVILEGE_MAP : montre tous les privilèges du système

41

42

D autres dictionnaires 43 n SESSION_ROLES n Tous les rôles actifs n USER_SOURCE n Le code des procédures appartenant à l utilisateur n ALL_SOURCE n Le code des procédures appartenant à l utilisateur ou à ceux auxquels il a accès n DBA_SOURCE n Toutes les procédures de la BD n USER_CATALOG n Information sur les tables, vues, séquences et synonymes de l utilisateur n USER_OBJECTS n Tout type d objet Oracle (clusters, database links, directories, functions, indexes, libraries, packages, java classes, abstract datatypes, resource plans, sequences, synonyms, tables, triggers, materialized views, LOBs, and views)

Conclusion 44 n DAC et RBAC ne permettent pas un contrôle d accès à niveau fin (tuples ou cellules) n Oracle propose les VPD (Virtual Private Databases) n Ré-écriture de requêtes n Politiques de sécurité n Fonctions PL/SQL n Oracle Security Guide 11g, novembre 2012 http://docs.oracle.com/cd/b28359_01/network.111/b28531.pdf