La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Jean-Michel Vallet1 La sécurité par le contrôle daccès Qui? Quoi? Comment? Ladministrateur de bases de données Ladministrateur de données Ladministrateur.

Présentations similaires


Présentation au sujet: "Jean-Michel Vallet1 La sécurité par le contrôle daccès Qui? Quoi? Comment? Ladministrateur de bases de données Ladministrateur de données Ladministrateur."— Transcription de la présentation:

1 Jean-Michel Vallet1 La sécurité par le contrôle daccès Qui? Quoi? Comment? Ladministrateur de bases de données Ladministrateur de données Ladministrateur dapplications La gestion des utilisateurs, de leurs privilèges et des profils Analyse puis réalisation en Mode commande ou par le biais dune Interface graphique

2 Jean-Michel Vallet2 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. Lutilisateur accède au dictionnaire en lecture par l'intermédiaire de vues.

3 Jean-Michel Vallet3 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 laccès en lecture des tables du dictionnaire. Ces tables et vues appartiennent à lutilisateur SYS. Ladministrateur en est SYSTEM.

4 Jean-Michel Vallet4 Description des vues du dictionnaire Les vues du dictionnaire sont réparties en 4 classes: Les vues relatives aux objets dun 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$

5 Jean-Michel Vallet5 Création du dictionnaire La création des tables de base du dictionnaire fait partie du processus de création dune 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...)

6 Jean-Michel Vallet6 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 dune base Oracle9i : SQL.BSQ: doit être spécifié en premier créé un tablespace SYSTEM créé un segment dannulation SYSTEM créé les tables du dictionnaire dans le tablespace SYSTEM CATALOG.SQL: créé les vues, les synonymes et les droits daccès sur le dictionnaire attribue un accès PUBLIC à ces synonymes CATPROC.SQL: Lance les scripts nécessaires à lutilisation de PL/SQL

7 Jean-Michel Vallet7 Autres fichiers permettant de construire le dictionnaire UTLSAMPL.SQLpermet la création dun jeu dexemples: lutilisateur SCOTT, ses tables et ses données (mot de passe tiger) CATBLOCK.SQLpermet de créer la vue qui donne la liste des verrous. CATEXP7.SQLpermet la création des vues nécessaires à loutil dExport dOracle7 pour récupérer des données dune base Oracle9i. CATOCTK.SQLpermet de créer des packages utilisées pour gérer le cryptage Oracle9i. CATRMAN.SQLpermet de créer les vues utilisées par RMAM, loutil de gestion des sauvegardes et restaurations. DBMSPOOL.SQLpermet 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.SQLcréation de la table contenant les informations de la commande SQL ANALYZE TABLE … CHAINED ROWS

8 Jean-Michel Vallet8 Sécurité et contrôle daccè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 daccè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.

9 Jean-Michel Vallet9 Création dun utilisateur de la base A chaque création dun utilisateur correspond la création dun 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}

10 Jean-Michel Vallet10 Création dun 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*/

11 Jean-Michel Vallet11 Les profils Ensembles nommés de limites ressources Affectés à des utilisateurs (il ne peut être attribué à chaque utilisateur quun 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

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

13 Jean-Michel Vallet13 Profils et Ressources

14 Jean-Michel Vallet14 Création, modification et suppression dun profil Création et modification dun 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 dun 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.

15 Jean-Michel Vallet15 Création dun profil Exemple: CREATE PROFILE developpeur_forms LIMIT SESSIONS_PER_USER7 CPU_PER_SESSIONUNLIMITED IDLE_TIME30 COMPOSITE_LIMIT ; Quand une limite de ressource est atteinte pour un utilisateur, le SGBD arrête lexécution de lopération en cours et annule la transaction.

16 Jean-Michel Vallet16 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}

17 Jean-Michel Vallet17 COMPOSITE_LIMIT RESOURCE COST Exemple: ALTER RESOURCE COST CPU_PER_SESSION150 CONNECT_TIME2; 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.

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

19 Jean-Michel Vallet19 Vues du dictionnaire et profils DBA_USERS: permet dobtenir des informations sur tous les utilisateurs et leur profil associé USER_RESOURCE_LIMITS: décrit les ressources limites de lutilisateur courant DBA_PROFILES:décrit les ressources limites de chaque profil RESOURCE_COST: décrit le poids de chaque ressource de COMPOSITE_LIMIT

20 Jean-Michel Vallet20 Les privilèges système Un privilège système permet dexé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...

21 Jean-Michel Vallet21 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 à dautres utilisateurs ou à dautres rôles. Retirer les privilèges système à un utilisateur ne se répercute pas sur les autres utilisateurs

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

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

24 Jean-Michel Vallet24 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

25 Jean-Michel Vallet25 Les privilèges objet Un privilège objet permet dexécuter une action particulière sur une table, vue, fonction, séquence, procédure, fonction ou package dun schéma.

26 Jean-Michel Vallet26 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 à dautres 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.

27 Jean-Michel Vallet27 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;

28 Jean-Michel Vallet28 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 dintégrité référentielle définies sur les objets pour lesquels on demande le retrait de privilèges.

29 Jean-Michel Vallet29 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

30 Jean-Michel Vallet30 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

31 Jean-Michel Vallet31 Les rôles Ensemble nommé de privilèges: 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 nappartenant à aucun schéma Avantage: centralise la gestion des privilèges différencie les privilèges nécessaires aux applicatifs (rôle dapplication) et ceux propres aux utilisateurs (rôle utilisateur)

32 Jean-Michel Vallet32 user 2 Utilisation des rôles Privilèges de lapplication PERSONNEL Privilèges de lapplication PERSONNEL Privilèges de lapplication COMMANDE Privilèges de lapplication COMMANDE Rôle COMMANDE Rôle NOTES DE FRAIS Rôle Acheteur Rôle Assistant Comptable Rôle Comptable user 5 user 4 user 1user 6 Privilèges Applications Rôles dapplications Rôles utilisateurs Rôle PAIE Rôle Vendeur Rôle Vendeur user 3

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

34 Jean-Michel Vallet34 Activation dun rôle 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 ;

35 Jean-Michel Vallet35 Vues du dictionnaire et rôles SESSION_PRIVS: privilèges actifs de lutilisateur courant SESSION_ROLES: rôles actifs de lutilisateur... USER_ROLE_PRIVS: rôles de lutilisateur... 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 à dautres rôles

36 Jean-Michel Vallet36 Création dun 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;

37 Jean-Michel Vallet37 Modification dun 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ëlDEFAULT ROLE admin;

38 Jean-Michel Vallet38 Suppression dun utilisateur DROP USER utilisateur [CASCADE] CASCADE: tous les objets du schéma associé sont supprimés.

39 Jean-Michel Vallet39 Suppression dune 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; 1297JOEL ALTER SYSTEM KILL SESSION 12,97

40 Jean-Michel Vallet40 Vues du dictionnaire et utilisateurs USER_USERS: permet dobtenir des informations sur lutilisateur courant ALL_USERS et DBA_USERS: permettent dobtenir des informations sur tous les utilisateurs USER_TS_QUOTAS: donne les quotas par tablespace pour lutilisateur courant DBA_TS_QUOTAS: donne les quotas par tablespace pour tous les utilisateurs


Télécharger ppt "Jean-Michel Vallet1 La sécurité par le contrôle daccès Qui? Quoi? Comment? Ladministrateur de bases de données Ladministrateur de données Ladministrateur."

Présentations similaires


Annonces Google