Académique Documents
Professionnel Documents
Culture Documents
INFO2 BDA
2/102
Introduction
3/102
Taches de ladministrateur
creer la BD et assurer son evolution :
ladministrateur a la t
ache de creer la BD et ses composantes
conformement `
a un schema conceptuel. Il doit assurer ainsi levolution de
cette base en modifiant, en creant ou en supprimant certaines structures.
4/102
Vues
GRANT . . . ; REVOKE . . .
CREATE ROLE . . . ;
5/102
Vues
6/102
Vues
Les Vues
Vues mono-table
7/102
Vues
Vues mono-table
TTITLE L e s P r o f e s s e u r s
SELECT NUM PROF, NOM, SPECIALITE , DATE ENT FROM PROFESSEURS ;
Les Professeurs :
NUM_PROF NOM
1 Bottle
2 Bolenov
3 Tonilaclasse
4 Pastecnov
5 Selector
6 Vilplusplus
7 Francesca
8 Pucette
SPECIALITE
po
esie
r
eseau
poo
sql
sql
poo
sql
DATE_ENT
01/10/70
15/11/68
01/10/79
01/10/75
15/10/82
25/04/90
01/10/75
06/12/88
8/102
Vues
Vues mono-table
TTITLE L e s P r o f e s s e u r s embauch
e s d e p u i s 1980
SELECT NUM PROF, NOM, SPECIALITE , DATE ENT FROM P r o f s 8 0 ;
DATE_ENT
15/10/82
25/04/90
06/12/88
9/102
Vues
10/102
Vues
11/102
Vues
12/102
Vues
13/102
Vues
14/102
Vues
15/102
Vues
NOM
Bottle
Bolenov
Tonilaclasse
Pastecnov
Selector
Vilplusplus
Francesca
Pucette
Le nouveau
Le nouveau
SPECIALITE
po
esie
r
eseau
poo
sql
sql
poo
sql
Data WareHouse
Data WareHouse
DATE_ENT
01/10/70
15/11/68
01/10/79
01/10/75
15/10/82
25/04/90
01/10/75
06/12/88
01/01/70
01/04/03
NOM
Selector
Vilplusplus
Pucette
Le nouveau
SPECIALITE
sql
poo
sql
Data WareHouse
DATE_ENT
15/10/82
25/04/90
06/12/88
01/04/03
16/102
Vues
17/102
Vues
SPECIALITE
sql
poo
sql
Data WareHouse
Data WareHouse
DATE_ENT
15/10/82
25/04/90
06/12/88
01/04/03
25/03/03
18/102
Vues
FROM PROFESSEURS ;
NOM
SPECIALITE
Bottle
po
esie
Bolenov
r
eseau
Tonilaclasse poo
Pastecnov
sql
Selector
sql
Vilplusplus
poo
Francesca
Pucette
sql
Le nouveau
Data WareHouse
Le nouveau
Data WareHouse
Le nouveau
Data WareHouse
DATE_ENT
01/10/70
15/11/68
01/10/79
01/10/75
15/10/82
25/04/90
01/10/75
06/12/88
01/01/70
01/04/03
25/03/03
19/102
Vues
SPECIALITE
sql
poo
sql
Data WareHouse
Data WareHouse
DATE_ENT
15/10/82
25/04/90
06/12/88
01/04/03
25/03/03
20/102
Vues
21/102
Vues
Les Vues
Vues multi-tables
Creation :
CREATE OR REPLACE VIEW
E n s e i g n e r (NUMP, NOMP, SPECIALITE , NOMC, NUMC)
AS
(SELECT P . NUM PROF, P .NOM, P . SPECIALITE , C .NOM, C . NUM COURS
FROM PROFESSEURS P , COURS C , CHARGE H
WHERE C . NUM COURS = H . NUM COURS
AND H . NUM PROF = P . NUM PROF
AND C . ANNEE=2);
SELECT FROM E n s e i g n e r ;
22/102
Vues
Vues multi-tables
SELECT * FROM Enseigner;
NUMP
----1
3
3
7
8
8
NOMP
------------Bottle
Tonilaclasse
Tonilaclasse
Francesca
Pucette
Pucette
SPECIALITE
----------po
esie
poo
poo
sql
sql
NOMC
NUMC
-------- ----Sgbd
4
Sgbd
4
Analyse
5
Sgbd
4
Sgbd
4
Analyse
5
SQL> insert into Enseigner values (37, Le nouveau, Musique, Danse, 6);
insert into Enseigner values (37, Le nouveau, Musique, Danse, 6)
*
ERREUR `
a la ligne 1 :
ORA-01779: Impossible modifier colonne correspondant `
a une table non
prot
eg
ee par cl
e
23/102
Vues
Vues multi-tables
i n s e r t i n t o E n s e i g n e r v a l u e s ( 3 7 , Le n o u v e a u , Musique ,
Danse , 6 ) ; IMPOSSIBLE
24/102
Clusters
Cluster
25/102
Clusters
Cluster
Jointure physique : Eviter de perdre du temps `a verifier les
conditions de jointure lors dune requete multi-tables
Cluster : Permet le regroupement physique des tables autour des
cles de jointure (cle de cluster)
NB : Utilisation limitee aux jointures tr`es frequemment sollicitees
Type de cluster sous Oracle :
Cluster `a index : indexation sur la cle du cluster
Cluster `a hachage : fonction de hachage appliquee `a la cle du
cluster
26/102
Clusters
Cluster
Creation (syntaxe simplifiee)
CREATE CLUSTER n o m c l u s t e r
(< n o m c l e 1 t y p e c l e 1 > [ , <n o m c l
e type cle2 . . . ]
[ SIZE t a i l l e b l o c ]
{ INDEX | HASHKEYS i n t e g e r } ;
Suppression
DROP CLUSTER <n o m c l u s t e r >
[ INCLUDING TABLES [ CASCADE CONSTRAINTS ] ]
27/102
Clusters
Conclusion
Schema Physique (n`eme version)
c r e a t e t a b l e COURS (NUM COURS NUMBER( 2 ) ,
. . . c o n s t r a i n t PK COURS p r i m a r y key (NUM COURS) ,
...
);
28/102
Taches de ladministrateur
+ Fichier dinitialisation
29/102
Taches de ladministrateur
Creation de la BD
(les fichiers dependent des OS ; plusieurs types de fichiers
seront crees) ;
CREATE TABLESPACE NomBD
DATAFILE c : \ Chemin \ t a b l e s p a c e s \NomBD . d b f SIZE 3M ;
3 M
e gas ou m M
e gas
CREATE TABLESPACE NomBD
DATAFILE c : \ Chemin \ t a b l e s p a c e s \tmp NomBD . d b f SIZE 3M ;
3 M
e gas ou m M
e gas
30/102
Taches de ladministrateur
3
31/102
Taches de ladministrateur
SHOW ERRORS ;
...
32/102
Taches de ladministrateur
Faut-il partager les donnees ?
Faut-il attribuer/retirer des privil`eges dacc`es ?
Quel type de droits dacc`es `a accorder aux autres utilisateurs ?
GRANT { p r i v i l `
ege syst`
eme | r
ole}
eme2 | ro
le2 } . . . ]
[ , { privil`
ege syst`
TO { u t i l i s a t e u r | r
o l e | PUBLIC} [ , u t i l i s a t e u r 2
[ WITH GRANT OPTION ] ;
...]
REVOKE { p r i v i l `
ege syst`
eme | r
ole}
[ , { privil`
ege syst`
eme2 | ro
le2 } . . . ]
FROM { u t i l i s a t e u r | r
o l e | PUBLIC} [ , u t i l i s a t e u r 2
...]
33/102
Droits dacc`
es
Droits dacc`es
Il existe deux familles de permissions :
les permissions syst`eme : pour Oracle, plusieurs dizaines de
privil`eges sont disponibles
Par exemple, la creation dutilisateurs (CREATE USER), la creation et la
suppression de tables (CREATE TABLE / DROP TABLE), la creation
despace disque (CREATE TABLESPACE), la sauvegarde de table (BACKUP
...), la creation de r
oles (CREATE ROLE)...
34/102
Droits dacc`
es
Droits dacc`es
GRANT p r i v i l `
e g e | ALL TO u t i l i s a t e u r | PUBLIC [ WITH GRANT OPTION ] ;
35/102
Droits dacc`
es
Droits dacc`es
Attribuer des privil`eges syst`eme sous Oracle :
GRANT { p r i v i l `
ege syst`
eme | r
ole } [ , { privil`
ege syst`
eme2 |
ro
le2 } . . . ]
TO { u t i l i s a t e u r
| r
o l e | PUBLIC} [ ,
utilisateur2
connect
create trigger
create procedure
create session
c r e a t e view
unlimited tablespace
...]
36/102
R
oles
Roles
Un role est un groupement de privil`eges.
Un utilisateur est un nom de compte Oracle.
PUBLIC permet de transmettre les droits `a tous les utilisateurs
associes `a lespace de stockage (tablespace) concerne
WITH GRANT OPTION permet de re-attribuer au(x)
beneficiaires(s) les privil`eges definis dans GRANT
37/102
R
oles
Roles
38/102
R
oles
Roles
[ CASCADE CONSTRAINTS ] ;
39/102
R
oles
Utilisateur 1
Rle A
Utilisateur 2
Privilge 2
Rle B
Utilisateur 3
Privilge 3
Rle C
Utilisateur 4
Privilge 4
40/102
R
oles
41/102
R
oles
limit
profile
profexpl ;
42/102
R
oles
Roles et utilisateurs
CREATE CLUSTER,
CREATE PROCEDURE, ...
DBA
43/102
S
ecurit
e
44/102
S
ecurit
e
| ON Nom de Vue
45/102
S
ecurit
e
Linstruction GRANT
Celui qui cree une table, une vue ou un index poss`ede tous les
privil`eges sur cet objet
Linstruction GRANT lui permet dautoriser dautres personnes `a
lutiliser.
46/102
S
ecurit
e
Linstruction GRANT
Exemple 1 : Permettre `a lutilisateur Etudiant1 de lire et
mettre `a jour la table ELEVES
GRANT SELECT , UPDATE ON ELEVES TO E t u d i a n t 1
47/102
S
ecurit
e
Linstruction GRANT
Exemple 2 : Permettre aux utilisateurs Etudiant1 et
Etudiant2 de lire et mettre `a jour la table ELEVES.
GRANT SELECT , UPDATE ON ELEVES TO E t u d i a n t 1 , E t u d i a n t 2 ;
48/102
S
ecurit
e
Linstruction GRANT
49/102
S
ecurit
e
Linstruction GRANT
Exemple 6 : Permettre `a un utilisateur privilegie SuperMan de
creer des index sur la table PROFESSEUR
GRANT INDEX ON PROFESSEURS TO SuperMan ;
50/102
S
ecurit
e
51/102
S
ecurit
e
52/102
S
ecurit
e
53/102
S
ecurit
e
54/102
S
ecurit
e
Linstruction REVOKE
Lutilisateur peut toujours reprendre un privil`ege quil a donne `a
quelquun.
Exemple 9 : Reprendre le privil`ege INDEX accorde `a lutilisateur
SuperMan sur la table PROFESSEURS
REVOKE INDEX ON PROFESSEURS FROM SuperMan ;
55/102
S
ecurit
e
Linstruction REVOKE
56/102
S
ecurit
e
Linstruction REVOKE
57/102
S
ecurit
e
Linstruction REVOKE
Remarque
58/102
S
ecurit
e
Linstruction REVOKE
REVOKE SELECT
ON T CHAMBRE
FROM DUBOIS
59/102
S
ecurit
e
Linstruction REVOKE
60/102
S
ecurit
e
Privil`eges et vues
En combinant la notion de vue et une gestion adequate des
privil`eges, on atteint une securite presque totale des donnees.
Exemple 13 : Permettre `a une categorie dutilsateurs (ou `a tous les
utilisateurs) dacceder en lecture `
a lensemble de la table PROFESSEURS sauf
aux attributs DATE ENTREE, DER PROM, SALAIRE BASE, SALAIRE ACTUEL
CREATE OR REPLACE VIEW PROFS ( NumeroPrf , NomPrf , S p e c i a l i t e P r f )
AS
(SELECT NUM PROF, NOM, SPECIALITE FROM PROFESSEURS ) ;
GRANT SELECT ON PROFS TO PUBLIC ;
61/102
S
ecurit
e
Privil`eges et vues
Exemple 14 : Le contr
ole des informations critiques peut aussi se
faire par lintegration du nom de lutilisateur createur de lobjet
dans la condition de selection.
CREATE OR REPLACE VIEW MesCours AS
(SELECT NOM, ANNEE FROM COURS WHERE NUM COURS
IN ( SELECT NUM PROF FROM CHARGE WHERE NUM PROF
IN ( SELECT NUM PROF FROM PROFESSEURS WHERE NOM = USER ) ;
GRANT ALL ON MesCours TO PUBLIC ;
62/102
Transaction
63/102
Transaction
64/102
Transaction
65/102
Transaction
66/102
Transaction
67/102
Transaction
68/102
Transaction
69/102
Transaction
ROLLBACK TO SAVEPOINT A;
Annulation (ROLLBACK) effectu
ee.
SELECT * FROM T ;
Le r
esultat obtenu est :
A
B
--------- --------1
1
2
2
3
3
70/102
Transaction
71/102
Transaction
72/102
Transaction
73/102
Transaction
74/102
Transaction
75/102
Transaction
76/102
Transaction
CREATE SYNONYM
p r f FOR p r o f e s s e u r s ;
CREATE ROLE r i r i ;
GRANT ALL ON e l e v e s TO r i r i ;
GRANT r i r i TO e c o l e ;
ALTER USER a n c i e n p w d IDENTIFIED BY newpwd ;
77/102
Sauvegarde
Backup et restauration
78/102
Sauvegarde
Backup et restauration
79/102
Sauvegarde
Sauvegarde en NoArchivLog
Modes de sauvegarde :
Backup complet `a la creation de la base et `a chaque
modification importante de sa structure (ajout dun fichier,
dun tablespace, ...)
Ce backup doit se faire en mode normal apr`es un SHUTDOWN
NORMAL ou IMMEDIATE
les fichiers `a sauvegarder sont :
les fichiers de donnees de tous les tablespaces
les fichiers REDO LOG
les fichiers de contr
ole
80/102
Sauvegarde
Sauvegarde en NoArchivLog
Etapes de sauvegarde en mode Noarchivlog :
1
Fichiers de contr
oles
SELECT FROM v $ p a r a m e t e r
WHERE name LIKE c o n t r o l f i l e s ;
Fichiers Redolog
SELECT FROM v $ l o g f i l e ;
81/102
Sauvegarde
Sauvegarde en NoArchivLog
82/102
Sauvegarde
Sauvegarde en ArchivLog
Modes de sauvegarde :
Backup complet `a la creation ou `a intervalles reguliers
(suivre les memes etapes quen mode noarchivelog)
Backup partiel de la base
Archivage automatique ou manuelle de fichiers REDO LOG
Backup du fichier de contr
ole en cas de modification de la
structure de la base (ajout dun tablespace ...)
83/102
Sauvegarde
Sauvegarde en ArchivLog
Backup partiel :
1
84/102
Sauvegarde
Sauvegarde en ArchivLog
Backup partiel :
2
85/102
Sauvegarde
Sauvegarde en ArchivLog
Backup partiel :
1
86/102
Sauvegarde
87/102
Sauvegarde
88/102
Sauvegarde
89/102
Sauvegarde
90/102
Sauvegarde
91/102
Sauvegarde
92/102
Sauvegarde
NB :
pas de perte des Redo Log courants
pas de perte des fichiers darchives
93/102
Sauvegarde
Etapes `a suivre
1
arreter la base
remedier `a la panne
94/102
Sauvegarde
Commencer le recouvrement
RECOVER AUTOMATIC
DATABASE . . . ;
95/102
Sauvegarde
96/102
Sauvegarde
Etapes `a suivre
1
Remedier `a la panne
97/102
Sauvegarde
. . . , nomtablespaceN ;
RECOVER DATAFILE n o m f i c h i e r 1 ,
5
... ,
nomfichierN ;
. . . ONLINE ;
98/102
Sauvegarde
Recouvrement incomplet
Recouvrement incomplet necessaire :
en cas de perte des fichiers Redolog
en cas de suppression accidentelle dune table
...
99/102
Sauvegarde
Si le fichier de contr
ole ne correspond pas, chercher une
bonne version sauvee ou recreer le fichier de controle
100/102
Sauvegarde
101/102
Sauvegarde
102/102
Sauvegarde
ou
RECOVER d a t a b a s e
UNTIL TIME YYYYMMHH24 : MI : SS ;
ou
RECOVER d a t a b a s e
UNTIL CHANGE s c n ;