Académique Documents
Professionnel Documents
Culture Documents
données Oracle
2
Dictionnaire de Données Oracle
❑ Et ce pour:
Récupérer les information nécessaire à l’exploitation et à
l’administration de la base de donnée Oracle
3
Exemple
CREATE TABLE Employes (id , nom , departement );
CREATE TABLE Departements (id , nom );
On pourra alors écrire la requête SELECT ci-dessus bien plus simplement, la jointure ne
sera plus visible :
SELECT * FROM ToutLeMonde ;
4
Dictionnaire de Données Oracle
⚫ Caractéristiques
✓ Appartient à l’utilisateur SYS
⚫ Stocke les informations sur:
✓ La base de données (structure logique et physique)
✓ Le nom et les définitions des différents objets crées
✓ Les contraintes sur les objets
✓ Les users de connexions et leur caractéristiques (ex:
privilèges)
✓ L’audit sur une base de données
5
Dictionnaire de Données Oracle
6
Dictionnaire de Données Oracle
7
Dictionnaire de Données Oracle
Démarche à suivre
La démarche à suivre afin d’interroger correctement le dictionnaire des données à
propos d’un objet est la suivante :
Étape 1 : trouver le nom de la vue en consultant DICTIONARY
Étape 2 : choisir les colonnes de la vue à sélectionner (utiliser DESC) ;
Étape 3 : interroger la vue en exécutant une requête SELECT contenant les colonnes
intéressantes.
NB : Étape 1 peut être omise si on connaît déjà le nom de la vue (ce sera le cas pour
les vues usuelles que vous aurez déjà utilisées à plusieurs reprises). 8
Dictionnaire de Données Oracle
Recherche du nom d’une vue
L’extraction du nom des vues qui concernent un objet est rendue possible
par l’interrogation de la vue DICTIONARY (de synonyme DICT)
9
Dictionnaire de Données Oracle
Interroger la vue
L’interrogation de la vue sur la base des colonnes choisies est l’étape finale de
la recherche de données dans le dictionnaire
10
Dictionnaire de Données Oracle
Recherche d’un code source
14
Dictionnaire de Données Oracle
Vues Dynamiques
15
Sécurité de la base de Données
Introduction
17
Sécurité de la base de Données
Principes
18
Sécurité de la base de Données
Principes
19
Sécurité de la base de Données
Principes
Traçabilité / Conformité
◼ Permettre de garder la trace des actions effectuées sur les
systèmes, à des fins de prévention, de dissuasion et d’audit des
incidents
◼ Qui a accédé ?
◼ Quelle information sur l’activité est capturée ?
◼ Comment sont protégés les référentiels d’audit ?
◼ Une exploitation systématique des audits est-elle en place ?
20
Sécurité de la base de Données
Principes
◼ 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.
21
Sécurité de la base de Données
comment appliquer ces Principes
❑ Authentification
❑ Autorisation
22
Sécurité de la base de Données
Authentification
❑ 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, …).
24
Sécurité de la base de Données
Administration de base de données
❑ Profiles
❑ Droits et privilèges
❑ Rôles
On est bien dans l’administration des bases de données
25
Gestion des utilisateurs
classification
Les types d’utilisateurs, leurs fonctions et leur nombre peuvent varier d’une base à une autre.
Néanmoins, on peut les classifier de la manière suivante :
❖ Le DBA (DataBase Administrator). Il en existe au moins un. Une petite base peut
n’avoir qu’un seul administrateur. Une base importante peut en regrouper plusieurs qui se
partagent les tâches suivantes :
➢ installation et mises à jour de la base et des outils éventuels ;
➢ Gestion des utilisateurs et de leurs objets (s’ils ne les gèrent pas eux-
mêmes) ;
27
Gestion des utilisateurs
création
◼ Syntaxe Complete
La syntaxe SQL de création d’un utilisateur est la suivante :
Syntaxe Simple :
CREATE USER utilisateur IDENTIFIED BY motdePasse
28
Gestion des utilisateurs
création (suite)
◼ IDENTIFIED BY motdePasse permet d’affecter un mot de passe à un utilisateur
local (cas le plus courant et le plus simple).
◼ IDENTIFIED BY EXTERNALLY permet de se servir de l’authenticité du système
d’exploitation pour s’identifier à Oracle (cas des compte OPS$ pour Unix).
● IDENTIFIED BY GLOBALLY permet de se servir de l’authenticité d’un système
d’annuaire.
● DEFAULT TABLESPACE nomTablespace associe un espace disque de travail (appelé
tablespace) à l’utilisateur.
● TEMPORARY TABLESPACE nomTablespace associe un espace disque temporaire
(dans lequel certaines opérations se dérouleront) à l’utilisateur.
● QUOTA permet de limiter ou pas chaque espace alloué.
● PROFILE nomProfil affecte un profil (caractéristiques système relatives au CPU et aux
connexions) à l’utilisateur.
● PASSWORD EXPIRE pour obliger l’utilisateur à changer son mot de passe à la première
connexion (par défaut il est libre). Le DBA peut aussi changer ce mot de passe.
● ACCOUNT pour verrouiller ou libérer l’accès à la base (par défaut UNLOCK).
29
Gestion des utilisateurs
création (suite)
◼ En l’absence de clause sur les espaces disque, le tablespace SYSTEM est
associé à l’utilisateur en tant qu’espace de travail et d’espace temporaire.
Il existe d’autres tablespaces créés par Oracle, citons USERS (celui que
vous devriez utiliser pour votre espace par défaut) et TEMP (celui que
vous devriez employer pour votre espace temporaire). Vous pouvez aussi
créer vos espaces via la console d’administration La clause ALTER USER
permet d’affecter un espace de travail ou temporaire différent de celui
du départ.
30
Gestion des utilisateurs
création (exemple )
Instruction SQL Resultat
CREATE USER Paul Paul est déclaré « utilisateur », ses
IDENTIFIED BY Pokemon objets (pas plus de 10 MO) seront
DEFAULT TABLESPACE USERS stockés dans USERS,
QUOTA 10M ON USERS certaines de ses opérations
TEMPORARY TABLESPACE TEMP nécessiteront de ranger des données
QUOTA 5M ON TEMP dans TEMP (pas plus de 5 MO). Il
PASSWORD EXPIRE; devra changer son mot de passe à la
première connexion.
CREATE USER Paul2 Paul2 est déclaré « utilisateur », ses
IDENTIFIED BY Pokemon objets seront stockés dans USERS,
DEFAULT TABLESPACE USERS son espace temporaire est SYSTEM.
ACCOUNT LOCK; Le compte est pour l’instant bloqué
Par défaut, les utilisateurs, une fois créés n’ont aucun droit sur la base de données
sur laquelle ils sont connectés. La section « Privilèges » étudie ces droits. 31
Gestion des utilisateurs
Modification d’un Utilisateur
❑ Pour Modifier le mot de passe de l’utilisateur (tache la plus utilisé) on utilise la
commande suivante:
❑ Pour pouvoir modifier les caractéristiques d’un utilisateur (autres que celle du mot
de passe) voila la Syntaxe. Elle contient instruction qui reprend les options
étudiées lors de la création d’un utilisateur.
32
Gestion des utilisateurs
Modification d’un Utilisateur
(Suite)
33
Gestion des utilisateurs
Modification d’un Utilisateur
(Suite)
➢ PASSWORD EXPIRE oblige l’utilisateur à changer son mot de passe à la
prochaine connexion.
➢ DEFAULT ROLE affecte à l’utilisateur des rôles qui sont en fait des ensembles
de privilèges (voir la section « Rôles »). Chaque utilisateur peut changer son
propre mot de passe à l’aide de cette instruction.
34
Gestion des utilisateurs
Modification d’un Utilisateur
(Exemples)
Exemples
Le tableau suivant décrit des modifications des utilisateurs créés auparavant :
35
Gestion des utilisateurs
Suppression d’un utilisateur (DROP USER)
Syntaxe
La syntaxe SQL pour supprimer un utilisateur est la suivante :
DROP USER utilisateur [CASCADE];
Oracle ne supprime pas par défaut un utilisateur s’il possède des objets (tables, séquences,
index, déclencheurs, etc.).
L’option CASCADE force la suppression et détruit tous les objets du schéma de l’utilisateur.
Conséquences
➢Les contraintes d’intégrité d’autres schémas qui référençaient des tables du schéma à
détruire sont aussi supprimées.
➢Les vues, synonymes, procédures ou fonctions cataloguées définis à partir du schéma détruit
mais présents dans d’autres schémas ne sont pas supprimés mais invalidés.
➢Les rôles définis par l’utilisateur à supprimer ne sont pas détruits par l’instruction DROP
USER.
36
Les Profiles
Introduction
❑ Un profil regroupe des caractéristiques système (ressources) qu’il est possible d’affecter
à un ou plusieurs utilisateurs.
❑ Un profil est créé par CREATE PROFILE, modifié par ALTER PROFILE et supprimé par
DROP PROFILE. Il est affecté à un utilisateur lors de sa création par CREATE USER ou
après que l’utilisateur est créé par ALTER USER. Le profil DEFAULT est affecté par défaut
à chaque utilisateur si aucun profil défini n’est précisé.
37
Les Profiles
Création -Syntaxe
38
Les Profiles
Création – Options et paramètres
◼ Les limites des ressources qui ne sont pas spécifiées sont initialisées avec les valeurs
du profil DEFAULT. Par défaut toutes les limites du profil DEFAULT sont à UNLIMITED.
Il est possible de visualiser chaque paramètre de tout profil en interrogeant certaines
vues du dictionnaire des données (voir le chapitre suivant). 40
Les Profiles
Création – Options et paramètres (suite)
Exemple Le tableau suivant décrit la création d’un profil et l’explication de ses options :
41
Les Profiles
Modification d’un profil (ALTER PROFILE)
◼ L’affectation de ce profil à l’utilisateur Paul est réalisée via l’instruction ALTER USER
suivante :
Pour pouvoir supprimer un profil, vous devez posséder le privilège DROP PROFILE.
43
Privilèges
Introduction (type de privilèges)
◼ Depuis le début du ce cours nous avons parlé de privilèges, il est temps à présent de
préciser ce que recouvre ce terme. Un privilège) (sous-entendu utilisateur est un droit
d’exécuter une certaine instruction SQL , ou un droit d’accéder à un certain objet d’un
autre schéma Les privilèges système diffèrent sensiblement d’un SGBD à un autre. En
revanche, les privilèges objets sont les mêmes et sont tous pris en charge via les
instructions GRANT et REVOKE.
❑ Privilège système : Est un droit d’exécuter une certaine instruction SQL Create
Alter , DROP , Etc …
❑ Privilège objet): Droit d’accéder à un certain objet d’un autre schéma SELECT,
DELETE, INSERT etc…
44
Privilèges Système
Attribution de privilèges système (GRANT)
45
Privilèges Système
Attribution de privilèges système (suite)
Grant connect to HR
Grant create trigger to ORA_ESTM
Grant create procedur e to TOTO
Grant create session to HR
Grant create vi ew to ORA_ESTM
grant unlimited tablespace to HR 46
Privilèges Système
Attribution de privilèges système (Exemple)
Administrateur Explication
GRANT CREATE SESSION, Paul peut se connecter à la base sous
CREATE SEQUENCE TO Paul; SQL*Plus par un outil (la console par
exemple), par programme. Il peut
créer des séquences.
GRANT CREATE TABLE TO Paul peut créer des tables dans son
Paul with ADMIN OPTION schéma et peut transmettre ce
privilège à un tiers.
GRANT CREATE SESSION, Paul2 peut se connecter à la base,
CREATE ANY TABLE, créer et détruire des tables dans tout
DROP ANY TABLE TO Paul2; schéma.
47
Privilèges Système
Retirer de privilèges système (REVOKE)
48
Privilèges Système
Retirer de privilèges système (Exemple de
revoke)
Administrateur Explication
REVOKE Paul et Paul2 ne peuvent plus se connecter à la
CREATE SESSION base. Ils conservent néanmoins leurs autres
FROM PUAL1, privilèges. Un tiers peut ainsi créer par exemple
PAUL2; des tables dans leur schéma (ils ont tous deux le
privilège CREATE TABLE).
REVOKE ALL Commande incorrecte car Paul2 n’a pas reçu tous
PRIVILEGES les privilèges système.
FROM Paul2;
49
Privilèges Objets
Introduction
◼ Privilèges objets
Les privilèges objets sont relatifs aux données de la base et aux actions sur les
objets (table,vue, séquence, procédure). Chaque type d’objet a différents privilèges
associés comme l’indique le tableau suivant. Nous ne montrons ici que quelques-unes
des possibilités de privilèges objets.
50
Privilèges Objets
Syntaxe d’affectation de privilège (Grant)
Syntaxe générale
◼ GRANT { privilègeObjet | nomRôle | ALL PRIVILEGES }
[(colonne1 [,colonne2]…)]
[, { privilègeObjet | nomRôle | ALL PRIVILEGES }] [(colonne1 [,colonne2]…)]…
ON { [schéma.]nomObjet | { DIRECTORY nomRépertoire | JAVA {
SOURCE | RESOURCE } [schéma.]nomObjet } }
TO { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle |
PUBLIC } ]…
[WITH GRANT OPTION] ;
Syntaxe la plus utilisée
◼ ALL PRIVILEGES donne tous les privilèges avec l’option GRANT OPTION) l’objet
en question.
52
53
Privilèges Objets
Retirer les privilèges (REVOKE )
54
Privilèges Objets
Retirer les privilèges (REVOKE - suite )
◼ Certaines options sont similaires à celles de la commande GRANT. Les autres sont
expliquées ci-après :
55
Privilèges Objets
Retirer les privilèges (REVOKE - suite )
Exemple
56
Privilèges Objets
Transmission de privilèges (introduction )
◼ Max possède le droit INSERT sur EMP, avec l’option GRANT OPTION .
différents, et le posséder de plusieurs manières (par ex. avec ou sans option GRANT).
57
Privilèges Objets
Transmission de privilèges (Exemple )
Attribution des privilèges:
❑ Max est le propriétaire du schéma Emp, Service. Il effectue les ordres :
❑ Zoé a reçu les droits SELECT sur Emp et Service de deux utilisateurs différents. Elle
a aussi reçu le droit INSERT(NOM) de deux façons différentes. 58
59
Privilèges Objets
Transmission de privilèges (Exemple suite )
◼ 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.
60
REVOKE SELECT,INSERT ON emp FROM lulu CASCADE; 61
Rôles
Introduction
Les rôles sont des groupes nommés de privilèges, qu’on accorde, en groupe,
à des utilisateurs ou à d’autres rôles.
62
Rôles
Exemple
◼ Définition du role ‘manager’ :
63
Rôles
Rôles prédéfinis
✓ RESOURCE : crée les tables, les vues, les triggers, les procédures.
64