La sécurité par le contrôle d’accès

Slides:



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

D/ Partage et permission NTFS
! ! ! PROCEDURE TYPE POUR ORGANISER L ’ANONYMAT
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Plan de formation Chapitre 1 : Présentation de SAP
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,
Sécurité Informatique
Développement d’applications web
Gestion et administration des bases de données
Contrôles d'accès aux données
Gestion des annulations
Gérer les tablespaces et les fichiers de données
Administration de SharePoint
Administration Des Utilisateurs
Services fournis par le SI et technologies associées
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Module 3 : Création d'un domaine Windows 2000
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
Introduction.
Fichiers de données Fichiers de contrôles Fichiers de journalisations Fichiers de paramètres d’initialisation.
CHAPITRE 4 : Gestion des Utilisateurs et Groupes
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.
Gérer la sécurité des mots de passe et les ressources
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.
Projet Python. ETAPE 1 Installation des packages python. Raccourcie crée automatiquement.
Surveiller et résoudre le conflit de verrouillage
GESTION DES UTILISATEURS ET DES GROUPES
Copyright  Oracle Corporation, All rights reserved. 19 Gestion des Privilèges.
Gérer une instance Oracle
05/02/98WEB ESNIG Modèle logique de données Oracle Designer/2000 & Oracle Web Server.
Gérer l'instance Oracle
(Ou groupes d ’utilisateurs)
Gérer le fichier de contrôle
Gestion des Rollback Segments
Structure de stockage et relations
Copyright  Oracle Corporation, All rights reserved. 20 Gestion des Rôles ( ou regroupement des privilèges)
Gérer les rôles.
Module 3 : Création d'un domaine Windows 2000
Administration d'un serveur Windows 200x Partie 1
Gérer les utilisateurs
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.
PLAN ● L'instance – Création – Démarrer, Arréter et surveiller – Connexion / Utilisateurs ● Optimisations et interconnexions ● Administration et sauvegardes.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Création et Gestion de Tables
Créer une base de données
Initiation à Oracle Server
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Objectifs A la fin de ce chapitre, vous pourrez :
Citrix ® Presentation Server 4.0 : Administration Module 9 : Déploiement d'applications.
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:
13 Copyright © Oracle Corporation, Tous droits réservés. Gérer l'intégrité des données.
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.
MySQL 5 Chapitre 2 M. Person. MySql 5 - Chapitre II 2 Mysql5 - Sécurité et maintenance Création des utilisateurs Backup et restauration.
Les bases de données Séance 8 Jointures.
Chapitre V: Administration Basique d’une base de données Oracle
Initiation aux bases de données et à la programmation événementielle
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Prévention de désastre et récupération Shadow copies (clichés instantanés) Backup/Restore Advanced Boot Options System Repair.
Installation du PGI – CEGID
Visual Information Solutions FastDL. Visual Information Solutions IDL pour le traitement parallèle ? -Beaucoup d’expériences/simulations génèrent de «
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.
Chapitre 3 Administration des accès aux ressources
Transcription de la présentation:

La sécurité par le contrôle d’accès Qui? Quoi? Comment? L’administrateur de bases de données L’administrateur de données L’administrateur d’applications La gestion des utilisateurs, de leurs privilèges et des profils Analyse puis réalisation en Mode commande ou par le biais d’une Interface graphique Jean-Michel Vallet

Le dictionnaire de données Structure centralisée contenant la description des objets gérés par le SGBD Organisée comme une base de données: informations stockées sous forme de tables élaboration de vues données accessibles par SQL Contenu ne devant pas être modifié directement par les utilisateurs, mais par le SGBD. L’utilisateur accède au dictionnaire en lecture par l'intermédiaire de vues. Jean-Michel Vallet

Structure du dictionnaire Les tables contenant la description des objets sont accessibles et maintenues de façon dynamique par le noyau. Le contenu y est souvent crypté. Les vues facilitent l’accès en lecture des tables du dictionnaire. Ces tables et vues appartiennent à l’utilisateur SYS. L’administrateur en est SYSTEM. Jean-Michel Vallet

Description des vues du dictionnaire Les vues du dictionnaire sont réparties en 4 classes: Les vues relatives aux objets d’un utilisateur: leurs noms commencent par USER_ Les vues relatives aux objets accessibles par un utilisateur: leurs noms commencent par ALL_ Les vues relatives aux administrateurs: leurs noms commencent par DBA_ ; pour y accéder il faut avoir le privilège SELECT ANY TABLE Les vues relatives au suivi des performances: leurs noms commencent par V_$ et V$ Jean-Michel Vallet

Création du dictionnaire La création des tables de base du dictionnaire fait partie du processus de création d’une base de données. INIT_SQL_FILES: paramètre permettant de spécifier les fichiers SQL exécutés après la création de la base de données: INIT_SQL_FILES= (SQL.BSQ,CATALOG.SQL ...) Jean-Michel Vallet

Les scripts indispensables à la création du dictionnaire de données Placés dans $ORACLE_HOME/rdbms/admin, ces scripts sont exécutés par défaut lors de la création d’une base Oracle9i : SQL.BSQ: doit être spécifié en premier créé un tablespace SYSTEM créé un segment d’annulation SYSTEM créé les tables du dictionnaire dans le tablespace SYSTEM CATALOG.SQL: créé les vues, les synonymes et les droits d’accès sur le dictionnaire attribue un accès PUBLIC à ces synonymes CATPROC.SQL: Lance les scripts nécessaires à l’utilisation de PL/SQL Jean-Michel Vallet

Autres fichiers permettant de construire le dictionnaire UTLSAMPL.SQL permet la création d’un jeu d’exemples: l’utilisateur SCOTT, ses tables et ses données (mot de passe tiger) CATBLOCK.SQL permet de créer la vue qui donne la liste des verrous. CATEXP7.SQL permet la création des vues nécessaires à l’outil d’Export d’Oracle7 pour récupérer des données d’une base Oracle9i. CATOCTK.SQL permet de créer des packages utilisées pour gérer le cryptage Oracle9i. CATRMAN.SQL permet de créer les vues utilisées par RMAM, l’outil de gestion des sauvegardes et restaurations. DBMSPOOL.SQL permet au DBA de forcer le maintien dans la SGA de packages PL/SQL. UTLXPLAN.SQL création de la table PLAN8TABLE utilisée pour stocker les informations issues de la commande SQL EXPLAIN PLAN. UTLCHAIN1.SQL création de la table contenant les informations de la commande SQL ANALYZE TABLE … CHAINED ROWS Jean-Michel Vallet

Sécurité et contrôle d’accès: les utilisateurs Les utilisateurs (users) et leur schéma Les profils: chaque utilisateur peut voir sa consommation de ressources système contrôlée par un profil spécifique Les privilèges d’accès: privilèges système privilèges objets Les rôles: chaque utilisateur peut voir ses privilèges définis par un rôle particulier. Jean-Michel Vallet

Création d’un utilisateur de la base A chaque création d’un utilisateur correspond la création d’un schéma de même nom Un mot de passe est donné à chaque utilisateur CREATE USER utilisateur IDENTIFIED BY mot_de_passe/EXTERNALLY [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [PROFILE profil] {QUOTA entier/UNLIMITED ON tablespace} Jean-Michel Vallet

Création d’un utilisateur de la base Exemple: CREATE USER joël IDENTIFIED BY jojo DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 22M ON users QUOTA 700K ON user_data; /*pas besoin de quotas sur temp*/ Jean-Michel Vallet

Les profils Ensembles nommés de limites ressources Affectés à des utilisateurs (il ne peut être attribué à chaque utilisateur qu’un seul profil) Activés ou désactivés: paramêtre RESOURCE_LIMIT dans init.ora (TRUE ou FALSE) ALTER SYSTEM SET RESOURCE_LIMIT = TRUE / FALSE Jean-Michel Vallet

Les profils Avantages: Inconvénients: permettent de contrôler les ressources systèmes de chaque utilisateur: interdire des opérations coûteuses s’assurer que les utilisateurs se déconnectent grouper des limites pour des groupes d’utilisateurs sont utiles sur de gros systèmes pour contôler l’utilisation des ressources d’un groupe d’utilisateurs par rapport à un autre Inconvénients: charges supplémentaires pour le contrôle de la limite autorisée de chaque utilisateur Jean-Michel Vallet

Profils et Ressources Jean-Michel Vallet

Création, modification et suppression d’un profil Création et modification d’un profil: CREATE / ALTER PROFILE nom_du_profil LIMIT {ressource entier / UNLIMITED / DEFAULT} Il existe un profil DEFAULT créé à la création de la base. Suppression d’un profil: DROP PROFILE nom_du_profil [CASCADE] CASCADE permet de supprimer le profil pour tous les utilisateurs concernés et de leur affecter le profil DEFAULT. Jean-Michel Vallet

Création d’un profil Exemple: CREATE PROFILE developpeur_forms LIMIT SESSIONS_PER_USER 7 CPU_PER_SESSION UNLIMITED IDLE_TIME 30 COMPOSITE_LIMIT 1500000; Quand une limite de ressource est atteinte pour un utilisateur, le SGBD arrête l’exécution de l’opération en cours et annule la transaction. Jean-Michel Vallet

COMPOSITE_LIMIT RESOURCE COST COMPOSITE_LIMIT exprime, pour une session, le coût total des ressources c_limit: CPU_PER_SESSION CONNECT_TIME LOGICAL_READ_PER_ SESSION PRIVATE_SGA Ce coût est positionné par la commande: ALTER RESOURCE COST {c_limit entier} Jean-Michel Vallet

COMPOSITE_LIMIT RESOURCE COST Exemple: ALTER RESOURCE COST CPU_PER_SESSION 150 CONNECT_TIME 2; La formule de calcul de ce coût est: T=150*CPU+2*CON Le poids par défaut pour une ressource c_limit est 0. Jean-Michel Vallet

Profil par défaut Les utilisateurs qui n’ont pas explicitement un profil ont le profil DEFAULT Toutes les limites non spécifiées d’un profil ont les valeurs du profil DEFAULT Initialement toutes les valeurs par défaut sont illimitées Le profil DEFAULT peut être modifié Jean-Michel Vallet

Vues du dictionnaire et profils DBA_USERS: permet d’obtenir des informations sur tous les utilisateurs et leur profil associé USER_RESOURCE_LIMITS: décrit les ressources limites de l’utilisateur courant DBA_PROFILES:décrit les ressources limites de chaque profil RESOURCE_COST: décrit le poids de chaque ressource de COMPOSITE_LIMIT Jean-Michel Vallet

Les privilèges système Un privilège système permet d’exécuter certaines actions touchant la structure de la base: créer une session (une connexion) créer une table ou une séquence etc...: sur son propre schéma sur tout autre schéma, créer un profil, un utilisateur etc... Jean-Michel Vallet

Attribution de privilèges système GRANT priv._syst. / rôle {, priv._syst. / rôle} TO user / rôle {,user/ rôle} / PUBLIC [WITH ADMIN OPTION] WITH ADMIN OPTION permet aux destinataires de transmettre les privilèges ou les rôles à d’autres utilisateurs ou à d’autres rôles. Retirer les privilèges système à un utilisateur ne se répercute pas sur les autres utilisateurs Jean-Michel Vallet

Attribution de privilèges système Exemple: GRANT CREATE SESSION, CREATE TABLE, EXECUTE ANY PROCEDURE TO kiki; Jean-Michel Vallet

Révocation de privilèges système REVOKE priv._syst. / rôle {, priv._syst. / rôle} FROM user / rôle {,user/ rôle} / PUBLIC Jean-Michel Vallet

Vues du dictionnaire et privilèges système SYS.DBA_SYS_PRIVS: décrit tous les privilèges système attribués aux utilisateurs et aux rôles Jean-Michel Vallet

Les privilèges objet Un privilège objet permet d’exécuter une action particulière sur une table, vue, fonction, séquence, procédure, fonction ou package d’un schéma. Jean-Michel Vallet

Attribution de privilèges objet GRANT priv._obj.[(liste_de_colonnes )] {,priv._obj.[(liste_de_colonnes )]} / ALL ON [schéma.]objet TO user / rôle {,user/ rôle} / PUBLIC WITH GRANT OPTION WITH GRANT OPTION permet aux bénéficiaires des privilèges de transmettre tout ou partie de ces privilèges à d’autres utilisateurs; retirer des privilèges à un utilisateur qui les a reçus avec la clause WITH GRANT OPTION retire en cascade ces privilèges à tous les utilisateurs auxquels il les a transmis. Jean-Michel Vallet

Attribution de privilèges objet Exemples: GRANT SELECT, UPDATE(adr,ville) ON fournisseurs TO PUBLIC; GRANT ALL ON entete TO joël, robert, marcel; GRANT EXECUTE ON conception TO eric, cecilia WITH GRANT OPTION; Jean-Michel Vallet

Révocation de privilèges objet REVOKE priv._obj. {, priv._syst.} / ALL ON [schèma.]objet FROM user/rôle {,user/rôle} / PUBLIC [CASCADE CONSTRAINTS] CASCADE CONSTRAINTS permet de supprimer toutes les contraintes d’intégrité référentielle définies sur les objets pour lesquels on demande le retrait de privilèges. Jean-Michel Vallet

Vues du dictionnaire et privilèges objets USER_TAB_PRIVS [_MADE / _RECD] décrit les privilèges objets donnés ou reçus directement USER_COL_PRIVS [_MADE / _RECD] décrit les colonnes spécifiées dans les privilèges DBA _TAB_PRIVS décrit tous les privilèges sur tous les objets DBA _COL_PRIVS décrit toutes les colonnes spécifiées dans les privilèges Jean-Michel Vallet

Vues du dictionnaire et objets ALL_TAB_PRIVS [_MADE / _RECD] décrit les privilèges objets donnés ou reçus directement, via un rôle ou PUBLIC ALL_TAB_PRIVS_MADE décrit les privilèges objets donnés via un rôle GRANT OPTION ALL_TAB_PRIVS_RECD décrit les privilèges objets reçus directement, via un rôle ou PUBLIC description sur les colonnes en remplaçant dans les noms de vues _TAB par _COL Jean-Michel Vallet

Les rôles Ensemble nommé de privilèges: Avantage: composé de privilèges système ou/et objet attribué à un utilisateur ou/et à un autre rôle activé ou désactivé pour chaque utilisateur pouvant nécessiter une autorisation n’appartenant à aucun schéma Avantage: centralise la gestion des privilèges différencie les privilèges nécessaires aux applicatifs (rôle d’application) et ceux propres aux utilisateurs (rôle utilisateur) Jean-Michel Vallet

Utilisation des rôles Privilèges de l’application COMMANDE PERSONNEL Privilèges Applications Rôle COMMANDE Rôle NOTES DE FRAIS Rôle PAIE Rôles d’applications Rôle Acheteur Rôle Vendeur Rôle Assistant Comptable Rôle Comptable Rôles utilisateurs user 1 user 2 user 3 user 4 user 5 user 6 Jean-Michel Vallet

Création, modification et suppression d’un rôle Création et modification d’un rôle: CREATE / ALTER ROLE rôle [NOT IDENTIFIED / IDENTIFIED BY mot_de_passe / EXTERNALLY] Suppression d’un rôle: DROP ROLE rôle Exemple: CREATE ROLE admin IDENTIFIED BY istration Jean-Michel Vallet

Activation d’un rôle Exemple: SET ROLE rôle [IDENTIFIED BY mot_de_passe] {,rôle [IDENTIFIED BY mot de passe]} /ALL [EXCEPT rôle {, rôle }] /NONE NONE: désactive tous les rôles de la session courante Exemple: SET ROLE appli_partie_1; ..... SET ROLE appli_partie_2; ..... SET ROLE ALL EXCEPT appli_partie_1 ; Jean-Michel Vallet

Vues du dictionnaire et rôles SESSION_PRIVS: privilèges actifs de l’utilisateur courant SESSION_ROLES: rôles actifs de l’utilisateur ... USER_ROLE_PRIVS: rôles de l’utilisateur ... DBA_ROLES: tous les rôles DBA_SYS_PRIVS: privilèges système attribués aux utilisateurs et aux rôles ROLE_ROLE_PRIVS: informations sur les rôles attribués à d’autres rôles Jean-Michel Vallet

Création d’un utilisateur de la base CREATE USER utilisateur IDENTIFIED BY mot_de_passe/EXTERNALLY [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [PROFILE profil] {QUOTA entier/UNLIMITED ON tablespace} Exemple: CREATE USER joël IDENTIFIED BY jojo DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp PROFILE developpeur_forms QUOTA 22M ON users QUOTA 700K ON user_data; Jean-Michel Vallet

Modification d’un utilisateur ALTER USER utilisateur [IDENTIFIED BY mot_de_passe/EXTERNALLY] [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [PROFILE profil] {QUOTA entier/UNLIMITED ON tablespace} [DEFAULT ROLE rôle{,rôle} /ALL[EXCEPT rôle] /NONE] Exemple: ALTER USER joël DEFAULT ROLE admin; Jean-Michel Vallet

Suppression d’un utilisateur DROP USER utilisateur [CASCADE] CASCADE: tous les objets du schéma associé sont supprimés. Jean-Michel Vallet

Suppression d’une session utilisateur ALTER SYSTEM KILL SESSION ‘sid,n°série’ sid: numéro de session utilisateur n°série:numéro de série de la session sont contenus dans la vue V$SESSION Exemple: SELECT sid,serial#,username FROM v$session WHERE username =‘JOEL’; 12 97 JOEL ALTER SYSTEM KILL SESSION ‘12,97’ Jean-Michel Vallet

Vues du dictionnaire et utilisateurs USER_USERS: permet d’obtenir des informations sur l’utilisateur courant ALL_USERS et DBA_USERS: permettent d’obtenir des informations sur tous les utilisateurs USER_TS_QUOTAS: donne les quotas par tablespace pour l’utilisateur courant DBA_TS_QUOTAS: donne les quotas par tablespace pour tous les utilisateurs Jean-Michel Vallet