Vous êtes sur la page 1sur 105

Systmes de gestion de base de

donnes SGBD
Oracle 10g

PLAN

Pourquoi un SGBD ?
Architecture du SGBD oracle
Construire une base de donnes sous Oracle
Administrer une base de donnes

Pourquoi un SGBD ?
Indpendance physique: Plus besoin de
travailler directement sur les fichiers
physiques .
Indpendance logique : Un mme ensemble
de donnes peut tre vu diffremment par
des users diffrents
Manipulations des donnes par des non
informaticiens : langage quasi-naturel

Pourquoi un SGBD (2) ?


Efficacit des accs aux donnes : doit
permettre dobtenir des rponses aux
interrogations en un temps raisonnable
Cohrence des donnes: permettre dajouter
des contraintes aux valeurs. Par exemple :
lge dune personne suprieur zro
Salaire suprieur zro

Pourquoi un SGBD (3) ?


Non redondance des donnes : Afin dviter les
problmes lors des mises jour, chaque donne
ne doit tre prsente quune seule fois dans la
base
Partageabilit des donnes : Il sagit de
permettre plusieurs utilisateurs daccder aux
mmes donnes au mme moment.
Il sagit alors de pouvoir :

Permettre deux (ou plus) utilisateurs de modifier la


mme donne en mme temps ;
Assurer un rsultat dinterrogation cohrent pour un
utilisateur consultant une table pendant quun autre
la modifie.

Pourquoi un SGBD (4) ?


Scurit des donnes : Donnes protges
contre accs non autoriss => Associer
chaque user des droits daccs .
Rsistance aux pannes: Rcuprer la base
dans un tat sain

Architecture trois niveaux : ANSI/SPARC

Architecture gnrale Oracle

Cration de base de donnes


Lancer lassistant de gestion de bases de
donnes (Database Configuration Assistant)
Crer votre propre base de donnes :
Portant le mot TP suivi de votre nom : TP_XXXX ;
Ayant comme mot de passe : oracle

Requtes utiles
Connatre linstance courante :
SHOW PARAMETER INSTANCE_NAME
Connatre la taille de la mmoire partage :
SHOW PARAMETER MEMORY_TARGET

Infos sur les processus


Les vues
V$PROCESS, V$BGPROCESS
Lister les noms de tous les background
processus ?

Rle : crit les blocs modifis du cache de


tampons de la base dans des fichiers de
donnes stocks surdisque.
Frquence dcriture du DBW
Toutes les 3 secondes
Ds que la Dirty List (liste des blocs modifis)
dpasse un seuil prdfini
Lors de chaque CheckPoint ( CKPT)
Chaque fois quune base est arrte normalement

Processus LGWR (obligatoire)


Rle : crit les entres de journalisation sur le
disque.
Frquence dcriture du LGWR
Toutes les trois secondes
Lors de la validation dune transaction en cours
COMMIT
Si le buffer REDO LOG est rempli 1/3
Lors de chaque Checkpoint (CKPT)
Lorsquil est dclench par le processus DBWn

Processus CKPT ( obligatoire )


Rle : met jour l'ensemble des fichiers de
donnes et de contrle de la base afin
d'indiquer le point de reprise le plus
rcent.
Frquence dcriture du CKPT

Manuellement : ALTER SYSTEM CHECKPOINT


Lors dun arrt propre de linstance Oracle

Processus ARCn (optionnel )


Rle : copie les fichiers de journalisation
(fichiers redo log) dans le lieu destin au
stockage des archives lorsqu'un
changement de fichier de journalisation se
produit.

Processus SMON (obligatoire )


Rles :
Effectue une rcupration aprs panne lorsque
l'instance est dmarre aprs une dfaillance.
Ncessaire au dmarrage de linstance Oracle
Nettoie les segments temporaires et inutiliss
Fusionne lespace libre dans de plus grand
blocs contigus

Processus PMON ( obligatoire )


Rles :
effectue un nettoyage de processus lorsqu'un
processus utilisateur choue.
Rcupration des processus utilisateurs dfaillants
Libre le cache de blocs de donnes
Libre les ressources qui taient exploites par les
utilisateurs
Fusionne lespace libre dans de plus grand blocs
contigus
Remarque : linstar du processus SMON, le processus PMON
sactive rgulirement pour se rendre compte si on a besoin
de lui.

Architecture logique

Architecture logique

(1) Tablespace
SQL> create table
subjects (
2 subject_id
number not null,
3 subject_name
varchar2(30) not
null,
4 description
varchar2(4000)
5 )
6 tablespace
users;

Les tablespace font le lien entre les objets et la structure


physique de la base de donnes :

Tablespaces ( v$tablespace)

SYSTEM tablespace
SYSTEM a tablespace that is always used to store SYSTEM
data that includes data about tables, indexes, sequences,
and other objects this metadata comprises the data
dictionary.
Every Oracle database has to have a SYSTEM tablespace
it is the first tablespace created when a database is
created.
Accessing it requires a higher level of privilege.
You cannot rename or drop a SYSTEM tablespace.
You cannot take a SYSTEM tablespace offline.
The SYSTEM tablespace could store user data, but this is
not normally donea good rule to follow is to never allow
allow the storage of user segments in the SYSTEM
tablespace.
This tablespace always has a SYSTEM Undo segment.

SYSAUX tablespace
The SYSAUX tablespace stores data for auxiliary applications
such as the LogMiner, Workspace Manager, Oracle Data
Mining, Oracle Streams, and many other Oracle tools.
This tablespace is automatically created if you use the
Database Creation Assistant software to build an Oracle
database.
Like the SYSTEM tablespace, SYSAUX requires a higher
level of security and it cannot be dropped or renamed.
Do not allow user objects to be stored in SYSAUX. This
tablespace should only store system specific objects.
This is a permanent tablespace.

Non-system tablespaces
UNDO tablespace :

Le tablespace UNDO, comme son nom l'indique, est


rserv exclusivement l'annulation des commandes
DML (UPDATE, INSERT, etc...).
Lorsqu'on excute l'ordre DELETE par exemple, Oracle
commence par copier les lignes supprimer dans le
tablespace UNDO et ensuite indique que les blocs
contenant les donnes dans le tablespace d'origine
sont libres.
Un ROLLBACK permettre de revenir en arrire alors que
le COMMIT supprimera les lignes du tablespace UNDO
(on comprend mieux ici pourquoi un DELETE est si long
: 2 critures pour une suppression :-/).

Non-system tablespaces
TEMP tablespace :

Un tablespace temporaire est un tablespace


spcifique aux oprations de tri
Ce tablespace n'est pas destin accueillir des
objets de la base de donnes et son usage est
rserv au systme.

Rle d'un Tablespace


Organiser logiquement le stockage des donnes
(localisation dune application dans un Tablespace,
cantonnement des utilisateurs dans un tablespace)
Contrler l'allocation des espaces disques au
utilisateurs via des quotas
Augmenter la disponibilit des donnes (arrt partiel
d'une base via l'arrt d'un Tablespace)
Sauvegarder et restaurer partiellement une base
Amliorer les performances grce la distribution des
informations sur des disques diffrents (index dans
tablespace et les tables dans un autre)
Fournir les paramtres de stockages des donnes par
dfaut

Pourquoi mon code SQL de cration de table a toujours


fonctionn alors que je nai jamais prcis de Tablespace?
La raison est : tous les comptes ont un Tablespace par
dfaut.
Alors pourquoi sen proccuper ?
Le DBA ne peut pas rpartir les objets de faon optimale car
il ne sait pas comment fonctionne lapplication.
Gnralement, le DBA va crer deux tablespaces : 1
Tablespace pour les tables + 1 Tablespace pour les indexes
(pour chaque schma). Ces 2 Tablespaces auront leurs
fichiers sur des disques distincts. De cette manire, les
lectures/critures seront rparties sur les disques.
Il faut ensuite chaque cration dobjet, prciser le
Tablespace cible.

Information sur les tablespaces

DBA_TABLESPACES
V$TABLESPACE
DBA_DATA_FILES
V$DATAFILE
DATABASE_PROPERTIES
USER_TABLESPACES

Types de tablespace :
1- tablespace permanente
2- tablespace temporaire
3- tablespace UNDO
2 types :
SMALLFILE (par dfaut) => fichier de 2^22
blocs (8KB = 32GB par fichier)
BIGFILE => fichier de 2^32 blocs (8KB = 32TB)

Cration dun tablespace


La commande CREATE TABLESPACE
CREATE TABLESPACE tablespace
[DATAFILE clause]
[MINIMUM EXTENT integer[K|M]]
[BLOCKSIZE integer [K]]
[LOGGING|NOLOGGING]
[DEFAULT storage_clause ]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY]
[extent_management_clause]
[segment_management_clause]

As you can see, almost all of the clauses are optional.


The clauses are defined as follows:
TABLESPACE: This clause specifies the tablespace
name.
DATAFILE: This clause names the one or more
datafiles that will comprise the tablespace and
includes the full path, example:

DATAFILE'/u01/student/dbockstd/oradata/USER350data01.dbf' SIZE 10M

MINIMUM EXTENT: Every used extent for the tablespace will be a


multiple of this integer value. Use either T, G, M or K to specify
terabytes, gigabytes, megabytes, or kilobytes.
BLOCKSIZE: This specifies a nonstandard block size the integer
value for BLOCKSIZE must correspond with one of the
DB_nK_CACHE_SIZE parameter settings.
LOGGING: This is the default all tables, indexes, and partitions
within a tablespace have modifications written to Online Redo Logs.
NOLOGGING: This option is the opposite of LOGGING and is used
most often when large direct loads of clean data are done during
database creation for systems that are being ported from another
file system or DBMS to Oracle.
DEFAULT storage_clause: This specifies default parameters for
objects created inside the tablespace. Individual storage clauses can
be used when objects are created to override the specified DEFAULT.

OFFLINE: This parameter causes a tablespace


to be unavailable after creation.
ALTER TABLESPACE users OFFLINE;

PERMANENT: A permanent tablespace can


hold permanent database objects.
CREATE TABLESPACE tbs_perm_01

TEMPORARY: A temporary tablespace can


hold temporary database objects, e.g.,
segments created during sorts as a result of
ORDER BY clauses or JOIN views of multiple
tables.
CREATE TEMPORARY TABLESPACE tbs_temp_01

extent_management_clause: This clause specifies


how the extents of the tablespace are managed and is
covered in detail later in these notes.
segment_management_clause: This specifies how
Oracle will track used and free space in segments in a
tablespace that is using free lists or bitmap objects.
datafile_clause: filename [SIZE integer [K|M]
[REUSE]
[ AUTOEXTEND ON | OFF ]
filename: includes the path and filename and file size.
REUSE: specified to reuse an existing file.
NEXT: Specifies the size of the next extent.
MAXSIZE: Specifies the maximum disk space
allocated to the tablespace. Usually set in megabytes,
e.g., 400M or specified as UNLIMITED.

Exemple cration tablespace permanente :


CREATE TABLESPACE tbs_perm_01
DATAFILE 'tbs_perm_01.dat'
SIZE 20M
ONLINE;

Exemple cration tablespace temporaire :


CREATE TEMPORARY TABLESPACE tbs_temp_01
TEMPFILE 'tbs_temp_01.dbf'
SIZE 5M
AUTOEXTEND ON;

Exemple cration tablespace UNDO :


CREATE UNDO TABLESPACE tbs_undo_01 DATAFILE
'tbs_undo_01.f'
SIZE 5M
AUTOEXTEND ON
RETENTION GUARANTEE;

Alter tablespace

Par exemple , chaque table de donne


est stocke dans son propre segment
de donnes et Chaque index de
donne est stock dans son propre
segment dindex .

Segments

Segments :
Le niveau logique de stockage situ au-dessus
d'un extent s'appelle un segment.
Un segment est un ensemble d'extents allous
pour une certaine structure logique.
Seuls les objets 'physiques' peuvent tre des
segments. Ainsi une vue ou un synonyme
n'est pas un segment...

Types de segment : Segments de donnes, Segments


d'index, Segments d'annulation (rollback segment),
Segments temporaires

Extents
Extents (ensembles de blocs contigus)
Le niveau logique d'une base de donnes
s'appelle un extent.
Un extent est un nombre dfini de blocs de
donnes contigus (obtenus par une allocation
unique) permettant de stocker un type
spcifique d'informations.

Bloc de donnes
Au niveau de dtail le plus fin, les donnes d'une
base Oracle sont stockes dans des blocs de
donnes.
Un bloc de donnes correspond un nombre
d'octets spcifique d'espace physique sur le
disque.
La taille du bloc de donnes est indique pour
chaque tablespace lors de la cration de celui-ci.
Chaque base utilise et alloue de l'espace libre de
base de donnes dans les blocs de donnes
Oracle.

Architecture physique Oracle

Structure physique dune BD (1)

Structure physique dune BD (2)


Les fichiers constituant une base de donnes Oracle sont
organiss de la faon suivante :
Fichiers de contrle : contiennent des donnes sur la base
elle-mme (informations sur la structure physique de la base de
donnes). Ces fichiers sont d'une importance capitale pour la
base. Sans eux, vous ne pouvez pas ouvrir de fichiers de
donnes pour accder aux donnes de la base.
Fichiers de donnes : contiennent les donnes utilisateur ou
les donnes d'application de la base.
Fichiers de journalisation en ligne : permettent la rcupration
d'une instance de base de donnes. S'il se produit une panne de
la base sans perte des fichiers de donnes, l'instance peut
rcuprer la base grce aux informations contenues dans ces
fichiers.

Structure physique dune BD (3)


Les fichiers supplmentaires ci-dessous permettent la
base de donnes de s'excuter correctement :
Fichier de paramtres : permet de dfinir comment
l'instance est configure lors de son lancement.
Fichier de mots de passe : permet aux utilisateurs de se
connecter distance la base de donnes et d'effectuer des
tches d'administration.
Fichiers de sauvegarde : ces fichiers sont utiliss pour la
rcupration de la base de donnes. Les fichiers de sauvegarde
sont gnralement restaurs lorsqu'une dfaillance physique ou
une erreur utilisateur a endommag ou supprim les fichiers
d'origine.

Structure physique dune BD (4)


Fichiers de journalisation archivs : contiennent l'historique complet
des modifications de donnes (informations de journalisation) gnres
par l'instance.
Vous pouvez, l'aide de ces fichiers et d'une sauvegarde de la base, restaurer un fichier
de donnes perdu.
Les fichiers de journalisation archivs permettent de rcuprer des fichiers de donnes
restaurs.

Fichiers trace : chaque processus serveur et chaque processus en


arrire-plan peut crire dans un fichier trace associ.
Lorsqu'une erreur interne est dtecte par un processus, ce dernier procde un dump
des informations sur l'erreur vers son fichier trace.
Certaines informations crites dans un fichier trace sont destines l'administrateur de
base de donnes, tandis que d'autres s'adressent aux services de support technique
Oracle. .

Fichiers dalertes : sont des fichiers trace spcifiques. Le fichier


d'alertes d'une base de donnes est un journal chronologique des
messages et des erreurs. Oracle recommande de consulter ces
fichiers.

Gestion des utilisateurs, profils et


ressources

Quest ce quun privilge?


Les privilges sont des droits pour excuter
des requtes
Le plus haut niveau de privilges sont des
privilges DBA, il a la possibilit de donner
aux utilisateurs laccs la base de
donnes
Les utilisateurs doivent possder des
privilges systme pour se connecter la
base de donnes, et les privilges objets
pour manipuler des donnes

Crer et modifier les utilisateurs

1. Mode didentification de lutilisateur

2 types didentification :
par Oracle
par le systme dexploitation
a. Identification par Oracle :
SQL> CONNECT oheu/rx239$
Connect.

b.

Identification par le systme dexploitation

SQL> CONNECT /
Connect.s

2. Cration dun utilisateur


Lordre SQL CREATE USER permet de crer un nouvel
utilisateur.
Syntaxe
CREATE USER nom IDENTIFIED { BY
mot_de_passe | EXTERNALLY }
[ DEFAULT TABLESPACE nom_tablespace ]
[ TEMPORARY TABLESPACE nom_tablespace ]
[ QUOTA { valeur [K|M] | UNLIMITED } ON
nom_tablespace [,...] ]
[ PROFILE nom_profil ]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK } ] ;

2. Cration dun utilisateur

Exemple :
CREATE USER u1 IDENTIFIED BY pass
DEFAULT TABLESPACE data
QUOTA UNLIMITED ON data
PASSWORD EXPIRE;

Pour quun nouvel utilisateur puisse effectivement se


connecter, il faut en plus lui donner le droit de le
faire, en lui attribuant le privilge systme CREATE
SESSION

Les options de lordre SQL CREATE


USER sont :
Nom Nom de lutilisateur.
Nom de lutilisateur: Cette clause indique si lutilisateur est identifi par le
systme dexploitation (EXTERNALLY) ou par Oracle (BY mot_de_passe).
DEFAULT TABLESPACE: Cette clause indique dans quel tablespace les segments
de lutilisateur sont crs par dfaut (cestdire si aucune clause TABLESPACE
nest prsente lors de la cration du segment).
TEMPORARY TABLESPACE
QUOTA La notion de QUOTA permet de limiter lespace quun utilisateur peut
employer dans un tablespace avec les segments quil cre.
l Aucun quota sur le tablespace
ORA-01950: pas de privilges sur le tablespaceDATA
l Dpassement de quota sur le tablespace
ORA-01536: dpassement du quota despace affect au
tablespace DATA

Les options de lordre SQL CREATE


USER sont (2)
PROFILE
PASSWORD EXPIRE Cette clause permet de forcer une modification du mot de
passe lors de la premire connexion (le mot de passe de lutilisateur est
expir). Si le compte est cr avec loption PASSWORD EXPIRE, lutilisateur,
lors de sa premire connexion, sera invit changer le mot de passe qui lui a
t attribu initialement.
ACCOUNT
LOCK : le compte est verrouill et la connexion interdite (erreur ORA-28000:
compte verrouill).
UNLOCK : le compte nest pas verrouill et la connexion autorise (valeur par
dfaut).
Si le compte est cr avec loption LOCK, le compte existe mais lutilisateur
ne peut pas se connecter. Lordre SQL ALTER USER pourra tre utilis plus
tard pour dverrouiller le compte de lutilisateur

3. Modification dun utilisateur


Lordre SQL ALTER USER permet de crer un nouvel utilisateur.
Syntaxe
ALTER USER nom
[ IDENTIFIED { BY mot_de_passe | EXTERNALLY } ]
[ DEFAULT TABLESPACE nom_tablespace ]
[ TEMPORARY TABLESPACE nom_tablespace ]
[ QUOTA { valeur [K|M] | UNLIMITED } ON
nom_tablespace [,...] ]
[ PROFILE nom_profil ]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK } ] ;

Exemples
l Modification du mot de passe dun utilisateur
ALTER USER u1
IDENTIFIED BY tempo
PASSWORD EXPIRE;
l Modification du tablespace par dfaut et attribution de quotas
ALTER USER u1
DEFAULT TABLESPACE test
QUOTA UNLIMITED ON test
QUOTA 10M ON data;
l Verrouillage dun compte
ALTER USER u1 ACCOUNT LOCK;

l Dverrouillage dun compte


ALTER USER u1ACCOUNT UNLOCK;

4. Suppression dun utilisateur

Lordre SQL DROP USER permet de crer un


nouvel utilisateur.
Syntaxe
DROP USER nom [ CASCADE ] ;

Exemple :
DROP USER u1 CASCADE;

4. Suppression dun utilisateur (2)


Si lutilisateur possde des objets, loption CASCADE doit
tre prsente pour forcer la suppression pralable des
objets. Si lutilisateur possde des objets et que loption
CASCADE soit absente, lerreur ORA-01922 est retourne :
ORA-01922: CASCADE indiquer pour
supprimer u1
Attention , il na pas de ROLLBACK possible !
Un utilisateur actuellement connect ne peut pas tre
supprim :
ORA-01940: impossible de supprimer un
utilisateur qui est connect

5. Trouver des informations sur les utilisateurs

Plusieurs vues du dictionnaire de donnes permettent


dobtenir des informations sur les utilisateurs :
l DBA_USERS : informations sur les utilisateurs
l DBA_TS_QUOTAS : informations sur les quotas
des utilisateurs.

Les profils

1. Prsentation
Un profil est un ensemble nomm de limitations de ressources qui
peut tre attribu un utilisateur.
Les ressources suivantes peuvent tre limites :

temps CPU par appel et/ou par session


nombre de lectures logiques par appel et/ou par session
nombre de sessions ouvertes simultanment par un utilisateur
temps dinactivit par session
dure totale de la session
quantit de mmoire prive dans la SGA (configuration serveurs
partags uniquement).
Une lecture logique correspond une lecture de bloc lors dune
requte, que ce bloc soit dj prsent en mmoire (dans le Database
Buffer Cache) ou lu sur disque (dans ce cas, la lecture logique
correspond aussi une lecturephysique).

1. Prsentation (2)
Depuis la version 8, les profils peuvent aussi tre utiliss pour
mettre en oeuvre une politique de gestion des mots de passe.
Les fonctionnalits suivantes peuvent tre mises en oeuvre :
verrouillage de compte (et dure de verrouillage) au del
dun certain nombre dchecs de tentative deconnexion
dure de vie des mots de passe (avec ventuellement une
priode de grce)
Non rutilisation dun mot de passe avant un certain temps
ou avant un certain nombre de changements
complexit du mot de passe.

2. Cration dun profil


Lordre SQL CREATE PROFILE permet de crer un nouveau profil.
Syntaxe

CREATE PROFILE nom LIMIT


[ SESSIONS_PER_USER { valeur | UNLIMITED | DEFAULT } ]
[ CPU_PER_SESSION { valeur | UNLIMITED | DEFAULT } ]
[ CPU_PER_CALL { valeur | UNLIMITED | DEFAULT } ]
[ CONNECT_TIME { valeur | UNLIMITED | DEFAULT } ]
[ IDLE_TIME { valeur | UNLIMITED | DEFAULT } ]
[ LOGICAL_READS_PER_SESSION { valeur | UNLIMITED | DEFAULT } ]
[ LOGICAL_READS_PER_CALL { valeur | UNLIMITED | DEFAULT } ]
[ COMPOSITE_LIMIT { valeur | UNLIMITED | DEFAULT } ]
[ PRIVATE_SGA { valeur [K|M] | UNLIMITED | DEFAULT } ]
[ FAILED_LOGIN_ATTEMPTS { valeur | UNLIMITED | DEFAULT } ]
[ PASSWORD_LIFE_TIME { valeur | UNLIMITED | DEFAULT } ]
[ PASSWORD_REUSE_TIME { valeur | UNLIMITED | DEFAULT } ]
[ PASSWORD_REUSE_MAX { valeur | UNLIMITED | DEFAULT } ]
[ PASSWORD_LOCK_TIME { valeur | UNLIMITED | DEFAULT } ]
[ PASSWORD_GRACE_TIME { valeur | UNLIMITED | DEFAULT } ]
[ PASSWORD_VERIFY_FUNCTION { nom_fonction | NULL | DEFAULT } ]

2. Cration dun profil (2)


Exemple :
CREATE PROFILE exploitation LIMIT
SESSIONS_PER_USER 3
IDLE_TIME 30
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME 180
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME 3
PASSWORD_VERIFY_FUNCTION
verif_mdp_exploitation ;

Limitations de ressources
Les limitations de ressources sont les suivantes :
SESSIONS_PER_USER Nombre de sessions simultanes.
CPU_PER_SESSION CPU totale par session (1/100 s).
CPU_PER_CALL CPU totale par appel (1/100 s).
CONNECT_TIME Dure totale de connexion (minutes).
IDLE_TIME Dure dinactivit (minutes).
LOGICAL_READS_PER_SESSION Nombre de lectures
logiques par session.
LOGICAL_READS_PER_CALL Nombre de lectures logiques
par appel.

Limitations de ressources (2)


PRIVATE_SGA
Quantit de mmoire prive dans la SGA.
COMPOSITE_LIMIT
Somme pondre de CPU_PER_SESSION ,CONNECT_TIME,
LOGICAL_READS_PER_SESSION et PRIVATE_SGA.

Pour la limite COMPOSITE_LIMIT, la vue RESOURCE_COST


permet de consulter les pondrations utilises et lordre SQL
ALTER RESOURCE COST de modifier les pondrations.

Limitations sur mots de passe


Les limitations relatives aux mots de passe sont les suivantes :
FAILED_LOGIN_ATTEMPTS
Nombre dchecs de tentative de connexion autoriss avant
verrouillage du compte, 10 dans le profil DEFAULT.
PASWORD_LOCK_TIME
Dure du verrouillage (jours), 1 dans le profil DEFAULT.
PASSWORD_LIFE_TIME
Dure de vie du mot de passe (jours), 180 dans le profil
DEFAULT.
PASSWORD_GRACE_TIME
Priode de grce aprs expiration du mot de passe (jours),
7 dans le profil DEFAULT.

Limitations sur mots de passe (2)


PASSWORD_REUSE_TIME

Nombre de jours pendant lequel un mot de passe ne


peut pas tre rutilis.
PASSWORD_REUSE_MAX

Nombre de changements de mot de passe avant quun


mot de passe puisse tre rutilis.
PASSWORD_VERIFY_FUNCTION

Fonction de vrification de la complexit du mot de


passe.

Remarques
1.

Les limites PASSWORD_REUSE_TIME et


PASSWORD_REUSE_MAX ne peuvent pas tre spcifies
simultanment : le contrle de la rutilisation dun mot de passe
est indiqu soit par une dure, soit par un nombre de
changements. Si lune desdeux limites a une valeur (diffrente de
UNLIMITED), lautre limite doit tre UNLIMITED.

2.

Des mots cls peuvent tre utiliss pour spcifier la valeur dune
limite :

l UNLIMITED : aucune limitation.


l DEFAULT : le paramtre hrite de la valeur du profil
nomm DEFAULT.
Une limite non spcifie dans un profil prend la valeur DEFAULT .

3. Modification dun profil

Syntaxe
ALTER PROFILE nom LIMIT

Exemples
Modification du profil DEFAULT
ALTER PROFILE default LIMIT
SESSIONS_PER_USER 3
IDLE_TIME 30
FAILED_LOGIN_ATTEMPTS 5;
-- les autres paramtres gardent la valeur par dfaut (UNLIMITED)
Modification dun autre profil
ALTER PROFILE exploitation LIMIT
SESSIONS_PER_USER 5 -- passe de 3 5
IDLE_TIME UNLIMITED -- suppression de la limite
FAILED_LOGIN_ATTEMPTS DEFAULT; -- prend la valeur par dfaut (5)

-- le reste est inchang


La modification dun profil naffecte les utilisateurs qu leur prochaine
connexion elle nest pas prise en compte immdiatement pour les
utilisateurs dj connects.

4. Affectation dun profil un utilisateur


Un profil peut tre attribu un utilisateur :
l lors de la cration de lutilisateur (CREATE USER)
l lors dune modification de lutilisateur (ALTER USER).
Exemples :
Lors de la cration de lutilisateur
CREATE USER xgeo IDENTIFIED BY tempo
TEMPORARY TABLESPACE temp
PROFILE exploitation
PASSWORD EXPIRE;

4. Affectation dun profil un utilisateur


(2)
Lors dune modification de lutilisateur
l Affectation dun profil
ALTER USER u1 PROFILE
exploitation;

5. Activation de la limitation des ressources


Par dfaut, le contrle de la limitation des ressources nest
pas activ. Crer des profils et les affecter aux
utilisateursna aucun effet.
Pour activer le contrle de la limitation des ressources, il
faut passer le paramtre RESOURCE_LIMIT TRUE (FALSE
par dfaut) :
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE [
clause_SCOPE ];
Noubliez pas dutiliser la clause SCOPE = BOTH pour rendre
la modification persistante en cas de redmarrage de la
base de donnes.
Les fonctionnalits de gestion des mots de passe
fonctionnent mme si le paramtre RESOURCE_LIMIT est
FALSE.

6. Suppression dun profil


Lordre SQL DROP PROFILE permet de supprimer un profil.
Syntaxe
DROP PROFILE nom [ CASCADE ] ;
Exemple :
DROP PROFILE exploitation CASCADE;
Si le profil est attribu des utilisateurs, loption CASCADE
doit tre prsente. Si le profil est attribu des utilisateurs
et que loption CASCADE soit absente, lerreur ORA-02382
est retourne :
ORA-02382<: Le profil EXPLOITATION a des
utilisateurs, impossible deffectuer la
suppression sans CASCADE
Le profil DEFAULT est affect en remplacement aux
utilisateurs concerns.La suppression dun profil naffecte
les utilisateurs qu leur prochaine connexion. Le profil
DEFAULT ne peut pas tre supprim.

7. Trouver des informations sur les


profils
Plusieurs vues du dictionnaire de donnes
permettent dobtenir des informations sur les
profils :
l DBA_USERS : informations sur les
utilisateurs, dont le profil attribu (colonne
PROFILE)
l DBA_PROFILES : informations sur les
profils.