You are on page 1of 40

Module n5

Gestion des utilisateurs


1Z0-031

Auteur : Davina Cit


Gestion des utilisateurs d septembre yyyy
Nombre de pages : 40

Ecole Suprieure dInformatique de Paris


23. rue Chteau Landon 75010 PARIS

www.supinfo.com

Gestion des utilisateurs

2 / 40

Table des matires


1.GRER LA SCURIT DES MOT DE PASSE ET DES RESSOURCES ................................................... 4
1.1.GESTION DES MOT DE PASSE ET DES PROFILS................................................................................................................4
1.1.1.Les profils..................................................................................................................................................... 4
1.1.2.Gestion de mot de passe............................................................................................................................... 5
1.1.3.Mettre en place la gestion de mot de passe..................................................................................................5
1.1.4.Verrouiller le mot de passe dun compte .....................................................................................................5
1.1.5.Expiration du mot de passe ......................................................................................................................... 6
1.1.6.Historique de mot de passe ..........................................................................................................................6
1.1.7.Vrification du mot de passe ....................................................................................................................... 6
1.2.FONCTION DU MOT DE PASSE ....................................................................................................................................6
1.2.1.Fonction de mot de passe fournit par lutilisateur.......................................................................................6
1.2.2.Fonction de vrification de mot de passe VERIFY_FUNCTION ................................................................7
1.3.GESTION DES PROFILS ............................................................................................................................................. 7
1.3.1.Crer un profil.............................................................................................................................................. 7
1.3.2.Modifier un profil......................................................................................................................................... 9
1.3.3.Supprimer un profil...................................................................................................................................... 9
1.4.GESTION DES RESSOURCES........................................................................................................................................ 9
1.4.1.Gestion des ressources............................................................................................................................... 10
1.4.2.Limiter lutilisation des ressources............................................................................................................ 10
1.4.3.Mise en place des limites de ressources..................................................................................................... 10
1.4.4.Crer un profil et limiter les ressources..................................................................................................... 11
1.4.5.Grer les ressources en utilisant Database Resource Manager................................................................ 12
1.4.6.Resource Plan Directives........................................................................................................................... 12
1.4.7.Obtenir des mot de passe et des informations de ressources limite........................................................... 13
2.GESTION DES UTILISATEURS.....................................................................................................................15
2.1.PRSENTATION DE LA GESTION DES UTILISATEURS ET DE LA SCURIT............................................................................ 15
2.1.1.Utilisateurs et scurit................................................................................................................................15
2.1.2.Schma dans la base de donnes................................................................................................................16
2.2.CRER ET SUPPRIMER DES UTILISATEURS................................................................................................................... 16
2.2.1.Crer un nouvel utilisateur : Authentification la base de donnes......................................................... 16
2.2.2.Crer un nouvel utilisateur : Authentification par le systme dexploitation............................................ 18
2.2.3.Supprimer un utilisateur.............................................................................................................................18
2.3.SURVEILLANCE DES UTILISATEURS............................................................................................................................ 19
2.3.1.Changer le quota dun utilisateur pour un tablespace.............................................................................. 19
2.3.2.Rcuprer les informations utilisateurs......................................................................................................19
3.GESTION DES PRIVILEGES..........................................................................................................................20
3.1.PRSENTATION DES PRIVILGES................................................................................................................................20
3.1.1.Gestion des privilges.................................................................................................................................20
3.2.PRIVILGES SYSTME............................................................................................................................................. 20
3.2.1.Privilges systme.......................................................................................................................................20
3.2.2.Exemples de privilges............................................................................................................................... 20
3.2.3.Accorder des privilges systme.................................................................................................................21
3.2.4.SYSDBA et SYSOPER privilges................................................................................................................ 22
3.2.5.Restrictions des privilges systmes........................................................................................................... 22
3.2.6.Supprimer des privilges systme...............................................................................................................23
3.2.7.Supprimer des privilges systme WITH ADMIN OPTION....................................................................... 23
3.3.PRIVILGES SUR LES OBJETS.................................................................................................................................... 24
3.3.1.Privilges sur les objets..............................................................................................................................24
3.3.2.Accorder des privilges sur des objets....................................................................................................... 24
3.3.3.Supprimer des privilges sur des objets..................................................................................................... 25
3.3.4.Supprimer des privilges sur des objets WITH GRANT OPTION............................................................ 26
3.3.5.Rcuprer des informations sur les privilges........................................................................................... 26
4.GESTION DES RLES.....................................................................................................................................27
4.1.PRSENTATION DES RLES...................................................................................................................................... 27

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

3 / 40

4.1.1.Prsentation des Rles............................................................................................................................... 27


4.1.2.Les avantages de rles................................................................................................................................27
4.2.IMPLMENTATION DES RLES...................................................................................................................................28
4.2.1.Crer des rles............................................................................................................................................28
4.2.2.Rles prdfinis.......................................................................................................................................... 28
4.2.3.Modifier des rles.......................................................................................................................................29
4.2.4.Assigner des rles.......................................................................................................................................29
4.3.GESTION DES RLES.............................................................................................................................................. 30
4.3.1.Mettre en place des rles par dfaut.......................................................................................................... 30
4.3.2.Les rles dapplication............................................................................................................................... 31
4.3.3.Activer et dsactiver des rles.................................................................................................................... 31
4.3.4.Enlever des rles des utilisateurs............................................................................................................ 32
4.3.5.Supprimer des rles.................................................................................................................................... 33
4.4.GUIDE DUTILISATION DES RLES............................................................................................................................. 33
4.4.1.Guide de cration de rle........................................................................................................................... 33
4.4.2.Guide dutilisation des mots de passe et des rles par dfaut................................................................... 34
4.4.3.Afficher les informations dun rle.............................................................................................................34
5.AUDIT................................................................................................................................................................. 36
5.1.CATGORIES DAUDIT............................................................................................................................................ 36
5.1.1.Audit........................................................................................................................................................... 36
5.1.2.Guide dutilisation daudit......................................................................................................................... 36
5.1.3.Catgories daudit...................................................................................................................................... 37
5.2.AUDIT SUR LA BASE DE DONNES.............................................................................................................................38
5.2.1.Audit sur la base de donnes...................................................................................................................... 38
5.2.2.Options daudit...........................................................................................................................................39
5.2.3.Vues sur les options daudit....................................................................................................................... 40
5.2.4.Obtenir des enregistrements daudit.......................................................................................................... 40

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

4 / 40

1.Grer la scurit des mot de passe et


des ressources
1.1.Gestion des mot de passe et des profils
1.1.1.Les profils
Un profil est une configuration nomme des mots de passe et des limites de ressource suivants :
Expiration de mot de passe
Historique de mot de passe
Vrification de la complexit du mot de passe
Blocage du compte
Temps de CPU
Opration dentre /sortie
Temps dinactivit
Temps de connexion
Espace de mmoire (zone prive SQL uniquement pour MTS)
Sessions concurrentes
Aprs la cration du profil, ladministrateur peut lattribuer chaque utilisateur. Si les limites de
ressource sont actives, le serveur Oracle limite lusage et les ressources de la base de donnes au
profil de lutilisateur.
Le serveur Oracle cre automatiquement un profil par dfaut quand la base de donne est cre.
Les utilisateurs qui n'ont pas t explicitement assigns un profil spcifique se conforment toutes
les limites du profil par dfaut.
Le profil par dfaut na pas de limites. Cependant, l'administrateur de base de donnes peut changer
ses valeurs de sorte que des limites soient appliques tous les utilisateurs de ce profil.
Lutilisation du profil :
- Empche les utilisateurs d'effectuer quelques oprations qui exigent de lourdes utilisations des
ressources
- Assure que lutilisateur se dconnecte de la base de donnes quand sa session est inactive
pendant un certain temps
- Active les limites de ressource du groupe pour le mme dutilisateurs
- Assigne facilement les limites de ressource aux utilisateurs
- Gre l'utilisation de ressource dans des systmes de base de donnes complexes utilisateurs
multiples
- Contrle lutilisation des mots de passe
Les attributions de profils naffectent pas les sessions courantes. Un profil ne peut tre assign qu
un utilisateur et non des rles ou dautre profils. Si vous nassign pas de profil un utilisateur, le
profil par dfaut lui sera automatiquement attribu.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

5 / 40

1.1.2.Gestion de mot de passe

Pour amliorer le contrle de la scurit de la base de donnes, la gestion de mot de passe d'Oracle est
contrle par des administrateurs de base de donnes avec des profils.
Les dispositifs de gestion de mots de passe sont :
- Le blocage de compte : Active automatique le blocage dun compte quand lutilisateur choue
sa connexion un certain nombre de fois.
- Lexpiration de mot de passe : dtermine le temps dutilisation du mot de passe avant quil
expire.
- Lhistorique de mot de passe : vrifie si le nouveau mot de passe nest pas rutilis avant une
priode donne.
- La vrification de la complexit du mot de passe : vrifie la complexit dun mot de passe,
contre les intrus qui pourraient essayer de pntrer dans le systme en devinant le mot de
passe.

1.1.3.Mettre en place la gestion de mot de passe


Pour activer la gestion de mot de passe, il faut crer un profil pour limiter les configurations de mot de
passe et attribuer le profil lutilisateur avec la commande CREATE USER ou ALTER USER.
Les configurations des limites du mot de passe dans les profils sont toujours imposes.
Lors de lactivation de la gestion de mot de passe, vous pouvez bloquer ou dbloquer le compte dun
utilisateur avec la commande CREATE USER ou ALTER USER.

1.1.4.Verrouiller le mot de passe dun compte


Le serveur Oracle bloque automatiquement un compte ds que la valeur de
FAILED_LOGIN_ATTEMPTS est atteinte.
Le compte est automatique dbloqu aprs le temps indiqu dans PASSWORD_LOCK_TIME ou doit
tre dbloqu par ladministrateur avec la commande ALTER USER.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

6 / 40

Le compte de base de donnes peut tre bloqu explicitement avec la commande ALTER USER, mais
ce compte ne pourra pas tre automatique dbloqu.

1.1.5.Expiration du mot de passe


Le paramtre PASSWORD_LIFE_TIME dtermine le temps maximum avant le changement du mot
de passe.
Ladministrateur de la base de donne peut spcifier une priode de grce avec
PASSWORD_GRACE_TIME, qui commence ds la 1re connexion la base de donnes aprs que le
mot de passe soit expir. Un message dalerte est gnr chaque fois que lutilisateur essaie de se
connecter pendant toute la priode de grce.
Si le mot de passe nest toujours pas chang, le compte est bloqu et sont statut passe EXPIRED par
une configuration explicite du mot de passe.

1.1.6.Historique de mot de passe


Lhistorique de mot de passe assure que lutilisateur ne peut pas rutiliser un mot de passe dans un
intervalle de temps spcifi. Cette vrification peut tre implmente en utilisant un des paramtres
suivants :
- PASSWORD_REUSE_TIME pour prciser que lutilisateur ne peut pas rutiliser un mot de
passe pour un nombre de jours donns.
- PASSWORD_REUSE_MAX pour obliger lutilisateur dfinir, un certain nombre de fois, un
mot de passe diffrent du premier.
Quand un paramtre est configur une valeur autre que DEFAULT ou UNLIMITED, les autres
paramtres doivent tre configur UNLIMITED.

1.1.7.Vrification du mot de passe


Avant dassigner un nouveau mot de passe lutilisateur, la fonction PL/SQL
PASSWORD_VERIFY_FUNCTION peut tre appele pour vrifier la validit du mot de passe.
Le serveur Oracle fournit une routine de vrification par dfaut ou ladministrateur peut crire une
fonction PL/SQL.

1.2.Fonction du mot de passe


1.2.1.Fonction de mot de passe fournit par lutilisateur
Pour ajouter une nouvelle fonction de vrification de mot de passe, ladministrateur de base de
donnes doit considrer les rgles suivantes :
- La fonction doit tre cre dans le schma SYS et doit avoir la syntaxe suivante:
function_name (
RETURN BOOLEAN
...

userid_parameter
password_parameter
old_password_parameter

IN VARCHAR2(30),
IN VARCHAR2(30),
IN VARCHAR2(30))

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


-

7 / 40

La valeur de retour de la fonction est TRUE pour un succs et FALSE pour un chec.
Si la fonction de mot de passe lve une exception, une erreur est retourne et la commande
ALTER USER ou CREATE USER se termine.
SYS doit tre le propritaire de la fonction de mot de passe
Si la fonction de mot de passe est invalide, un message derreur est retourn et la commande
ALTER USER ou CREATE USER se termine.

1.2.2.Fonction de vrification de mot de passe


VERIFY_FUNCTION
Le serveur Oracle fournit une fonction de vrification complexe, dans le formulaire dune fonction
PL/SQL par dfaut, appel VERIFY_FUNCTION du script utlpwdmg.sql, qui doit sexcuter dans le
schma SYS.
Pendant lexcution du script utlpwdmg.sql, le serveur Oracle cr la fonction VERIFY_FUNCTION
et change le profil par dfaut avec la commande ALTER PROFIL suivante :
SQL>
2
3
4
5
6
7
8

ALTER PROFIL DEFAULT LIMIT


PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME
PASSWORD_REUSE_TIME 1800
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function;

Avec VERIFY_FUNCTION, le mot de passe doit:


- avoir un minimum de 4 caractres
- ne doit pas tre identique au login
- avoir au moins une lettre, un chiffre et un caractre spcial
- tre diffrent de lancien mot de passe dau moins 3 lettres

1.3.Gestion des profils


1.3.1.Crer un profil
On attribut un profil avec la commande CREATE USER ou ALTER USER. On ne peut attribu quun
profil la fois un utilisateur.
Syntaxe:
CREATE PROFIL
profil LIMIT
[FAILED_LOGIN_ATTEMPTS
max_value]
[PASSWORD_LIFE_TIME
max_value]
[ {PASSWORD_REUSE_TIME
|PASSWORD_REUSE_MAX}
max_value]
[PASSWORD_LOCK_TIME
max_value]
[PASSWORD_GRACE_TIME
max_value]

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


[PASSWORD_VERIFY_FUNCTION
DEFAULT} ]

8 / 40
{function|NULL|

Avec:
profil
FAILED_LOGIN_ATTEMPS
PASSWORD_LIFE_TIME
PASSWORD_REUSE_TIME

PASSWORD_REUSE_MAX

PASSWORD_LOCK_TIME
PASSWORD_GRACE_TIME
PASSWORD_VERIFY_FUNCTION

Cest le nom du profil crer


Dfinit le nombre dchec de connexion permit avant que le
compte de lutilisateur se bloque
Limite le nombre de jours o le mme mot de passe peut tre
utilis pour une authentification. Le mot de passe expire si il
nest pas chang pendant cette priode.
Dfinit le nombre de jours avant quun mot de passe puisse
tre rutilis. Si vous configurer
PASSWORD_REUSE_TIME une valeur de nombre entier,
alors vous devez placer PASSWORD_REUSE_MAX
UNLIMITED.
Dfinit le nombre de changement de mot de passe demand
avant de pouvoir rutiliser le mot de passe actuel. Si vous
configurer PASSWORD_REUSE_MAX une valeur de
nombre entier, alors vous devez placer
PASSWORD_REUSE_TIME UNLIMITED.
Dfinit le nombre de jours o un compte sera bloqu aprs un
nombre de connexion conscutive choue.
Dfinit le nombre de jours de la priode de grce pendant
laquelle une alerte seffectuera chaque connexion. Si le mot
de passe nest pas chang pendant cette priode, il expire.
Permet au script PL/SQL de vrification complexe du mot de
passe dtre pass comme argument lordre CREATE
PROFIL.

Exemple:
CREATE PROFIL
grace_5 LIMIT
FAILED_LOGIN_ATTEMPTS
3
PASSWORD_LOCK_TIME
UNLIMITED
PASSWORD_LIFE_TIME
30
PASSWORD_REUSE_TIME
30
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_GRACE_TIME
5;
Cration du profil grace_5 avec la possibilit de se tromper 3 fois de mot de passe sans quil ne
soit dbloqu avant. Son mot de passe expire sous 35 jours (temps de grce compris) si il nest pas
modifi avant et il est vrifi par la fonction de scurit fournit par Oracle.

Crer un profil avec Oracle Entreprise Manager


Lancez Security Manager partir de la Console.
-

Lancez la Console
%oemapp console
Choisissez Launch standalone
Vous pouvez aussi lancer la Console du menu dmarrer de Windows NT

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


-

9 / 40

Droulez votre base de donnes du dossier Database


Droulez le dossier de Security et slectionner le dossier Profils
Slectionnez Create du menu Object
Slectionnez Profil dans la liste et cliquez sur Create
Entrez le nom du Profil et compltez les autres champs ou acceptez les valeurs par dfaut
Slectionnez le champ de mot de passe et entrez les paramtres de mot de passe de compte
Cliquez sur Create.

1.3.2.Modifier un profil
La commande ALTER PROFIL est utilise pour changer les limites de mot de passe attribues un
profil.
Syntaxe :
ALTER PROFIL profil LIMIT
[FAILED_LOGIN_ATTEMPTS
max_value]
[PASSWORD_LIFE_TIME
max_value]
[ {PASSWORD_REUSE_TIME
|PASSWORD_REUSE_MAX}
max_value]
[PASSWORD_LOCK_TIME
max_value]
[PASSWORD_GRACE_TIME
max_value]
[PASSWORD_VERIFY_FUNCTION
{function|NULL|DEFAULT} ]
Si vous voulez configurer les paramtres de mot de passe moins dun jour :
1 heure => PASSWORD_LOCK_TIME = 1/24
10 minutes => PASSWORD_LOCK_TIME = 10/1400
5 minutes => PASSWORD_LOCK_TIME = 5/1440
Les changements naffectent pas les sessions courantes, ils ne sont employs que sur les prochaines
sessions.

1.3.3.Supprimer un profil
Supprimer un profil en utilisant la commande DROP PROFIL :
DROP PROFIL profil [CASCADE];
profil
CASCADE

: est le nom du profil pour tre supprimer


: supprime le profil des utilisateurs qui il est assign (Le serveur Oracle attribut
automatiquement le profil par dfaut des utilisateur. Spcifiez cette option pour
supprimer un profil qui est actuellement attribu aux utilisateurs)

Le profil par dfaut ne peut pas tre supprim.


Lors de la suppression dun profil, ce changement ne sapplique quaux nouvelles sessions cres et
non aux sessions actuelles.

1.4.Gestion des ressources

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

10 / 40

1.4.1.Gestion des ressources


Des limites de gestion de ressource peuvent tre imposes au niveau de la session, au niveau de
l'appel, ou aux deux niveaux.
Lactivation des limites des ressources se fait avec le paramtre dinitialisation RESSOURCE_LIMIT
et la commande ALTER SYSTEM.
Les tapes suivantes permettent de contrler lusage des ressources avec les profils :
1. Crez un profil avec la commande CREATE PROFILE pour dfinir les limites des ressources
et du mot de passe.
2. Attribuez le profil avec la commande CREATE USER ou ALTER USER.
3. Imposez les limites de ressource avec la commande ALTER SYSTEM ou ditez le fichier de
paramtre dinitialisation (et redmarrez linstance).
Dfinir les limites de ressources nest pas ncessaire pour lactivation de gestion de mot de passe
Oracle.

1.4.2.Limiter lutilisation des ressources


Activer ou dsactiver lapplication des limites des ressources en modifiant le paramtre
dinitialisation RESSOURCE_LIMIT ou en utilisant la commande ALTER SYSTEM.
Le paramtre RESSOURCE_LIMIT :
- Se modifie dans le fichier dinitialisation.
- La valeur TRUE active lapplication.
- La valeur FALSE dsactive lapplication (valeur par dfaut).
- Utilisez ce paramtre quand la base de donnes est arrte.
La commande ALTER SYSTEM :
- La configuration faite avec la commande ALTER SYSTEM persiste jusqu' la prochaine
modification ou jusqu ce que la base de donnes soit arrte.
- Lutilisation de cette commande ne se fait pas quand la base de donnes est arrte.

1.4.3.Mise en place des limites de ressources


Les limites du profil peuvent tre appliques au niveau de la session, de lappel ou des deux. Les
limites au niveau de la session sont appliques chaque connexion.
Quand les limites de session sont dpasses :
- une erreur est retourne
Par exemple : ORA-02391: exceeded simultaneous SESSION_PER_USER limit.
- le serveur Oracle dconnecte lutilisateur
Ressource
CPU_PER_SESSION
SESSION_PER_USER
CONNECT_TIME

Description
Temps de CPU total en centaine de secondes
Nombre de sessions pour chaque utilisateur
Temps de connexion coul en minutes

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


IDLE_TIME

LOGICAL_READS_PER_SESSION

PRIVATE_SGA

11 / 40

Priode dinactivit en minutes qui est calcule


uniquement pour le processus serveur. Ne prend pas en
compte lapplication active. Nest pas affecte par des
requtes dexcution longues et dautres oprations.
Nombre de blocs de donnes (lecture physique ou
logique). Cest la limitation sur le nombre total de
lectures mmoire ou disque. Ceci pourrait tre fait pour
sassurer quaucun ordre intensif dentre/sortie ne peut
jouer sur les performances.
Espace prive dans la SGA en bits. Sapplique seulement
lors de lexcution de larchitecture du serveur partag et
peut tre dfinit par M ou K.

Les limites au niveau de lappel sont imposes chaque appel fait tout en excutant un ordre SQL.
Quand une limite au niveau de lappel est dpasse :
- lexcution de lordre est arrte
- lordre est annul
- Tous les ordres prcdents demeurent intacts
- La session dutilisateur reste connecte
Ressource

Description

CPU_PER_CALL
LOGICAL_READS_PER_CALL

Temps de CPU par appel en centaine de secondes


Nombre de blocs de donnes qui peuvent tre lus par
appel

1.4.4.Crer un profil et limiter les ressources


Syntaxe de la commande CREATE PROFIL :
CREATE PROFIL profil LIMIT
[SESSIONS_PER_USER max_value]
[CPU_PER_SESSION max_value]
[CPU_PER_CALL max_value]
[CONNECT_TIME max_value]
[IDLE_TIME max_value]
[LOGICAL_READS_PER_SESSION max_value]
[LOGICAL_READS_PER_CALL max_value]
[COMPOSITE_LIMIT max_value]
[PRIVATE_SGA max_bytes]
Avec :
profil
max_value
max_bytes
UNLIMITED
DEFAULT

Est le nom du profil


Est un nombre entier, UNLIMITED ou
DEFAULT
Est un nombre entier optionnel suivit de K ou M,
UNLIMITED ou DEFAULT
Indique que lutilisateur du profil peut utiliser un
nombre illimit de ressource
Indique que le profil est sujet de limites de
ressources comme elles sont dfinit dans le profil
par dfaut.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


COMPOSITE_LIMIT

12 / 40
Limite le cot total de ressource pour une session
exprimer en unit de service.

Oracle calcule le cot des ressources avec la somme des paramtres suivants :
- CPU_PER_SESSION
- CONNECT_TIME
- LOGICAL_READS_PER_SESSION
- PRIVATE_SGA
La vue du dictionnaire de donnes RESOURCE_COST renseigne sur la limite de chaque ressource.

1.4.5.Grer les ressources en utilisant Database


Resource Manager
Le but de Database Resource Manager est de donner au serveur Oracle plus de contrle sur les
dcisions de gestion de ressources, ainsi il vite des problmes rsultant de la gestion inefficace du
systme dexploitation.
Database Resource Manager comporte diffrents lments :
-

Groupe de consommateurs de ressource (Resource consumer group): Des groupes


dutilisateurs ou de sessions groups sur base de condition de traitement des ressources.

Plan de ressource (Resource plan): Contient des directives qui indiquent comment les
ressources sont alloues aux groupes de consommateurs de ressource.

Mthode dallocation de ressource (Resource allocation methode): La mthode ou police


utilise par Database Resource Manager lors de lallocation de ressources particulires.

Directive de plan de ressource (resource plan directive): Utilis par les administrateurs pour
associer des groupes de consommateurs de ressource avec des plans particuliers et pour
allouer des ressources parmi des groupes de consommateurs de ressource.

Pour administrer Database Resource Manager, vous devez avoir le privilge systme
ADMINISTER_RESOURCE_MANAGER pour administrer le Database Resource Manager
(DBMS_RESOURCE_MANAGER). Typiquement, les DBAs auront ce privilge avec loption
ADMIN entant qulment du rle DBA.

1.4.6.Resource Plan Directives


Database Resource Manager fournit plusieurs moyens dallouer des ressources :
-

La mthode CPU (CPU Method) : permet de dfinir comment les ressources CPU sont
allouer aux groupes de consommateur.

Le pool de session active en file dattente (Active session pool with Queuing) : vous pouvez
contrler un nombre maximum de sessions actives avec un groupe de consommateur. Une
session est mise en file dattente quand le pool de sessions est plein. Si une session active se
termine, la 1re session dans la file est programme pour une excution. Une priode darrt
peut aussi tre dfinit comme un travail en file dattente qui sarrte avec une erreur.

Le degr de limite de paralllisme (Degree of Parallelism Limit): spcifie une limite de degr
parallle pour toutes les oprations se trouvant dans un groupe de consommateur.
http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

13 / 40

La commutation automatique de groupes de consommation (Automatic consumer group


switching) : permet de contrler les ressources par dfinition de critres. Si un critre nest
pas vu, cela provoquera une commutation automatique de sessions un autre groupe de
consommateur.
Ces critres sont :
Switch group : le groupe commut.
Switch time : temps de commutation en seconde.
Switch estimate : estimation du temps que lopration prendra pour saccomplir, pour
savoir si lon commute une opration avant quelle ne commence.

Le temps maximum dexcution estim (Maximum estimate execution time) : estime le temps
dexcution pour une opration proactive. Un DBA peut dfinir le temps dexcution
maximum estim sur n'importe quelle opration en configurant le paramtre
MAX_ESTIMATED_EXEC_TIME. Si le temps destimation de lopration est plus
important que celui dfinit dans MAX_ESTIMATED_EXEC_TIME, lopration ne dbutera
pas, donc il y aura une limination des grands travaux qui utilisent trop de ressources.
Le pool Undo : Un pool Undo pour chaque groupe de consommateur peut tre dfinit pour
contrler le nombre total dUndo qui peut tre gnr par un groupe de consommation. Quand
un groupe de consommateur dpasse ses limites, lordre DML courant gnrant le redo se
terminera. Le pool Undo est dfinit par le paramtre UNDO_POOL.

1.4.7.Obtenir des mot de passe et des informations de


ressources limite
Les informations sur le statut des comptes peuvent tre obtenues avec la vue du dictionnaire de
donnes DBA_USERS.
Exemple:
SQL> SELECT
2
FROM
USERNAME
-------SYS
SYSTEM
OUTLN
DBSNMP
HR
OE

username, password, account_status,


dba_users;

PASSWORD
ACCOUNT_STATUS
---------------- -------------8A8F025737A9097A OPEN
D4DF7931AB130E37 OPEN
4A3BA55E08595C81 OPEN
E066D214D5421CCC OPEN
BB69FBB77CFA6B9A OPEN
957C7EF29CC223FC LOCKED

Pour afficher les informations sur le profil de mot de passe, il faut interroger la vue DBA_PROFILS :
Exemple:
SQL> SELECT
2
FROM
3
WHERE
4 AND

*
dba_profils
resource_type='PASSWORD'
profil=GRACE_5;

PROFIL RESOURCE_NAM
--------------------------

RESOURCE
--------

LIMIT

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


GRACE_5 FAILED_LOGIN_ATTEMPTS
GRACE_5 PASSWORD_LIFE_TIME
GRACE_5 PASSWORD_REUSE_TIME
GRACE_5 PASSWORD_REUSE_MAX
UNLIMITED
GRACE_5 PASSWORD_VERIFY_FUNCTION
DEFAULT
GRACE_5 PASSWORD_LOCK_TIME
UNLIMITED
GRACE_5 PASSWORD_GRACE_TIME

14 / 40
PASSWORD
PASSWORD
PASSWORD
PASSWORD

3
30
30

PASSWORD
PASSWORD
PASSWORD

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

15 / 40

2.Gestion des utilisateurs


2.1.Prsentation de la gestion des utilisateurs et de la
scurit
2.1.1.Utilisateurs et scurit

Ladministrateur de base de donnes dfinit les logins des utilisateurs leur permettant daccder la
base. Un domaine de scurit dfinit les configurations qui sappliquent lutilisateur.
Avec le mcanisme dauthentification, un utilisateur qui a besoin de se connecter la base de donne
peut tre authentifi par :
- Le dictionnaire de donnes
- Le systme dexploitation
- Le rseau
Les moyens dauthentification sont spcifis quand lutilisateur est dfinit dans la base et ils peuvent
tre modifis ultrieurement.
Les quotas de Tablespaces contrle le nombre despace de stockage physique allou un utilisateur
dans le tablespace de la base de donnes.
Le tablespace par dfaut dfinit le lieu o sont stock les segments crs par un utilisateur, si le
tablespace nest pas dfinit explicitement.
Le tablespace temporaire dfinit o les extents seront allous par le serveur Oracle, si lutilisateur
ralise une opration avec dune criture de donnes sur le disque.
Des comptes peuvent tre bloqus pour empcher un utilisateur de se connecter la base. Cela peut se
faire automatiquent ou manuellement par ladministrateur.
http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

16 / 40

Des limites peuvent tre appliques sur lutilisation des ressources comme le temps de CPU, le
nombre dentre/sortie et le nombre de session ouverte par utilisateur.
Les privilges directs sont utiliss pour contrler les actions dun utilisateur sur la base de donnes.
Un utilisateur peut indirectement attribuer des privilges aux utilisateurs avec les privilges incluent
dans les rles.

2.1.2.Schma dans la base de donnes


Un schma est une collection nomme dobjets comme des table, vues, clusters, procdures et des
packages associs un utilisateur particulier.
Quand un utilisateur de base de donnes est cr, un schma correspondant, avec le mme nom, est
cr pour cet utilisateur. Il ne peut avoir quun schma par utilisateur, ainsi lusername et le schma
sont souvent interchangeables.

2.2.Crer et supprimer des utilisateurs


2.2.1.Crer un nouvel utilisateur : Authentification la
base de donnes
Syntaxe de cration dun nouvel utilisateur :
CREATE USER user
IDENTIFIED {BY password | EXTERNALLY}
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
]...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
[ PROFIL { profil | DEFAULT }]
Avec:
user
BY password
EXTERNALLY
GLOBALLY AS
DEFAULT TEMPORARY TABLESPACE

Est le nom de lutilisateur


Indique que lutilisateur doit fournir un mot de
passe pour se connecter la base de donnes.
Indique que lauthentification des utilisateurs se
ferra par le systme dexploitation.
Indique que lutilisateur doit sauthentifier
globalement.
Identifie le tablespace par dfaut ou un
tablespace temporaire lutilisateur si un
tablespace temporaire na t attribu aucun
utilisateur.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


QUOTA

PASSWORD EXPIRE

ACCOUNT LOCK/UNLOCK
PROFIL

17 / 40
Dfinit lespace maximum permit pour les objets
de lutilisateur dans le tablespace tablespace (sa
valeur peut tre en un entier de bits, kilobits,
mgabits ou UNLIMITED. Par dfaut
lutilisateur na pas de quota sur les tablespaces)
Force lutilisateur redfinir sont mot de passe
lors de sa connexion la base en utilisant SQL
Plus (cette option nest valable que si lutilisateur
est authentifi par la base de donnes)
Pour bloquer ou dbloquer explicitement un
compte dutilisateur (UNLOCK est par dfaut)
Est utilis pour contrler les ressources dusage
et pour dfinir le mcanisme de contrle de mot
de passe pour lutilisateur

La mthode dauthentification par mot de passe est obligatoire. Si un mot de passe est spcifi, il est
conserv par le serveur Oracle dans le dictionnaire de donnes. Les mcanismes de contrle de mot de
passe fournit par le serveur Oracle sont disponibles lorsque les utilisateurs sauthentifient sur le
serveur.
Une fois que lexpiration de mot de passe est programme, quand lutilisateur se connecte sur SQL
Plus, il reoit le message suivant louverture et est invit entrer un nouveau mot de passe :
ERROR:
ORA-28001: the account has expired
Changing password for PETER
Old password:
New password:
Retype new password:
Password changed

Crer un nouvel utilisateur avec Oracle Entreprise Manager


-

Droulez le dossier Security de votre base de donnes


Slectionnez le dossier User et slectionnez Create dans le menu du clic droit
Entrez les informations sur lutilisateur dans la page principale de la fentre de proprits
Spcifier les quotas utiliss dans la page Quotas
Cliquez sur Create

Vous pouvez aussi slectionner un utilisateur et slectionnez ObjectCreate Like dans la barre
de menu pour crer un utilisateur avec les mme quotas et privilges que utilisateur existant dans
la base.
Oracle Security Manager attribut automatiquement le rle CONNECT tous les utilisateurs qui
sont crs partir de cet outil.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

18 / 40

2.2.2.Crer un nouvel utilisateur : Authentification par le


systme dexploitation
Il faut utiliser la clause IDENTIFIED EXTERNALLY dans la commande CREATE USER pour
spcifier que lutilisateur doit sauthentifier par le systme dexploitation. Cette option est
gnralement utilise quand lutilisateur se connecte directement sur la machine o se trouve le
serveur Oracle.
Exemple :
CREATE USER aaron
IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp
QUOTA 15m ON data
PASSWORD EXPIRE;
Cette requte montre comment lutilisateur aaron est dfinit dans la base. Ainsi lutilisateur du
systme dexploitation aaron pourra accder la base sans devoir passez une authentification du
serveur Oracle.
Alors pour se connecter avec SQL Plus sous un systme UNIX, lutilisateur aaron doit rentrer la
commande systme suivante :
$ sqlplus/
Le paramtre dinitialisation OS_AUTHENT_PREFIX dfinit le format des logins pour une
authentification du systme dexploitation. Cette valeur sera par dfaut OPS$ pour permettre une
rtro compatibilit avec les version antrieur du serveur Oracle.
Pour configurer le prfixe NULL, il faut initialiser le paramtre comme tel :
OS_AUTHENT_PREFIX =
OS_AUTHENT_PREFIX=OPS$ donne la flexibilit davoir un authentification par le systme
dexploitation ou par le serveur Oracle. Dans ce cas le DBA peut cr lutilisateur en entrant une
commande :
CREATE USER ops$user
IDENTIFIED password...
Un utilisateur qui se connecte directement sur une machine avec un serveur Oracle na pas besoin de
fournir un mot de passe. Si lutilisateur se connecte avec une machine cliente distante, il devra fournir
un mot de passe.
Le paramtre dinitialisation, REMOTE_OS_AUTHENT=TRUE indique quun utilisateur peut
sauthentifier distante. La valeur FALSE ne permet quune connexion en local sur le serveur.
Attention lutilisation de ce paramtre qui peut provoquer des problmes de scurit.

2.2.3.Supprimer un utilisateur
La syntaxe de suppression dun utilisateur est :
DROP USER user [CASCADE];

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

19 / 40

Loption CASCADE supprime tous les objets dans le schma avant de supprimer lutilisateur. Cela
doit tre spcifi si le schma contient des objets.
Un utilisateur qui est connect la base ne peut pas tre supprim.

2.3.Surveillance des utilisateurs


2.3.1.Changer le quota dun utilisateur pour un
tablespace
Si une table dun utilisateur montre une croissance imprvue, si une application besoin dun table ou
dun indexe supplmentaire ou si des objets sont rorganiss et placs dans diffrents tablespaces ;
vous aurez besoin de modifier les quotas de tablespace avec la commande suivante :
ALTER USER user
[ DEFAULT TABLESPACE tablespace]
[ TEMPORARY TABLESPACE tablespace]
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M] | UNLIMITED } ON
tablespace ]
...]
Une fois quun quota de 0 est assign, les objets de lutilisateur sont supprims du tablespace et ne
peuvent tre allous de nouveaux espaces.
Par exemple, si une table de 10MB se trouve dans le tablespace USERS, et que vous excutez cette
commande :
ALTER USER aaron
QUOTA 0 ON USERS;
Aucun nouvel extent ne pourra tre assign cette table.
Toutes les options inchanges demeurent sans changement.

2.3.2.Rcuprer les informations utilisateurs


Pour afficher le tablespace par dfaut pour tous les utilisateurs, on excute la commande suivante:
SQL> SELECT
2 FROM

USERNAME
----------SYS
SYSTEM
OUTLN
DBSNMP
HR
OE

username, default_tablespace
dba_users;

DEFAULT_TABLESPACE
-----------------SYSTEM
SYSTEM
SYSTEM
SYSTEM
EXAMPLE
EXAMPLE

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

20 / 40

3.Gestion des privileges


3.1.Prsentation des privilges
3.1.1.Gestion des privilges
Un privilge est un droit dexcuter un type particulier dordre SQL ou daccder un objet dun
autre utilisateur. Cela inclut le droit de :
- se connecter une base
- crer une table
- slectionner les lignes dun autre utilisateur
- excuter la procdure stocke dun autre utilisateur
Chaque privilge systme permet un utilisateur dexcuter une opration de base de donnes
particulire ou une classe dopration de base de donnes. Par exemple, le privilge de crer un
tablespace est un privilge systme.
Chaque privilge objet permet lutilisateur dexcuter une action particulire sur un objet spcifique,
tel quune table, une vue, une squence, une procdure, une fonction ou un package.
Le contrle des privilges dun DBA permet de:
- Fournir un utilisateur les droits dexcuter un type dopration.
- Attribuer ou retirer le droit dexcuter des fonctions systmes
- Donner des privilges un utilisateur ou un rle
- Attribuer des privilges tous les utilisateurs (PUBLIC)

3.2.Privilges systme
3.2.1.Privilges systme
Les privilges peuvent tre classs de la manire suivante :
- Des privilges permettant de oprations systme ; par exemple, CREATE SESSION,
CREATE TABLESPACE.
- Des privilges permettant la gestion des objets dans in le schma dutilisateur ; par exemple,
CREATE TABLE.
- Des privilges permettant la gestion des objets dans tous les schmas ; par exemple, CREATE
ANY TABLE.
Les privilges peuvent tre contrls avec les commandes GRANT et REVOKE, qui ajoute et
supprime des privilges un utilisateur ou un rle.

3.2.2.Exemples de privilges

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


Catgorie
INDEX

21 / 40
Exemple
CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX

TABLE

CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE

SESSION

CREATE SESSION
ALTER SESSION
RESTRICTED SESSION

TABLESPACE

CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE

Il ny a pas de privilge CREATE INDEX.


CREATE TABLE inclut les commandes CREATE INDEX et ANALYZE. Lutilisateur doit avoir un
quota pour le tablespace ou doit avoir le privilge UNLIMITED TABLESPACE.
UNLIMITED TABLESPACE ne peut pas tre attribu un rle.
Pour supprimer une table dun autre schma, il faut avoir le privilge DROP ANY TABLE.

3.2.3.Accorder des privilges systme


On utilise lordre SQL, GRANT pour accorder des privilges systme aux utilisateurs.
Loption ADMIN permet dattribuer des privilges dautres utilisateurs. Ce privilge est
habituellement rserv par scurit ladministrateur et rarement aux autres utilisateurs.
Syntaxe :
GRANT {system_privilege|role}
[, {system_privilege|role} ]...
TO {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]
system_privilege : spcifie le privilge systme accorder un utilisateur ou un rle.
PUBLIC : Attribut le systme privilge tous les utilisateurs
WITH ADMIN OPTION : permet lutilisateur dattribuer son tour des privilges dautres
utilisateurs ou rles.

Accorder des privilges systmes avec Oracle Entreprise Manager


http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


-

22 / 40

Aprs un clic droit sur votre base de donnes, cliquez sur Connect.
Indiquez le login, le mot de passe et le nom pour votre base de donnes et cliquez sur OK.
Drouler le dossier Security
Droulez le dossier Users et slectionnez lutilisateur de votre choix
Cliquez sur System Privileges dans la partie dtail de la console.
Slectionner le privilge systme que vous voulez accorder. Eventuellement, vrifi la box
Admin Option et cliquez sur Apply.

3.2.4.SYSDBA et SYSOPER privilges


Seul ladministrateur de base de donnes devrait avoir la possibilit de se connecter la base avec des
privilges dadministrateurs.
Se connect comme un SYSDBA donne lutilisateur tous les privilges pour excuter toutes les
oprations sur une base de donnes ou les objets dans la base.
Catgorie
SYSOPER

SYSDBA

exemple
ALTER DATABASE ARCHIVELOG
RECOVER DATABASE
ALTER DATABASE BACKUP CONTROLFILE TO
ALTER DATABASE OPEN | MOUNT
SHUTDOWN
STARTUP
SYSOPER PRIVILEGES WITH ADMIN OPTION
CREATE DATABASE
ALTER DATABASE BEGIN/END BACKUP
RESTRICTED SESSION
RECOVER DATABASE UNTIL

3.2.5.Restrictions des privilges systmes


Le mcanisme de protection du dictionnaire dans Oracle9i empche les utilisateurs non autoris
daccder aux objets du dictionnaire.
Laccs aux objets du dictionnaire est restreint au rle SYSDBA et SYSOPER. Les privilges de
systme, permettant d'accder aux objets dans d'autres schmas, ne donnent pas l'accs aux objets de
dictionnaire. Par exemple, le privilge SELECT ANY TABLE vous permet daccder aux vues et
tables des autres schmas, mais vous ne pouvez pas slectionner les objets du dictionnaire (les table,
les vues, les packages et les synonymes).
Si le paramtre est configur TRUE, laccs aux objets dans le schma SYS est permis. Si ce
paramtre est configur FALSE, les privilges SYSTEM qui permettent aux objets se trouvant dans
les autres schmas, ne permettent pas laccs aux objets dans le dictionnaire de schma.
Par exemple, si O7_DICTIONARY_ACCESSIBILITY=FALSE, alors lordre SELECT ANY TABLE
permettra daccder aux vues ou tables dans tous les schmas sauf le schma SYS. Le privilge
systme, EXECUTE ANY PROCEDURE permet laccs aux procdures sur tous les autres schmas
sauf le schma SYS.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

23 / 40

3.2.6.Supprimer des privilges systme


Le privilge systme peut tre supprim avec la commande REVOKE. Tous les utilisateurs avec
ADMIN OPTION dans leur privilge systme peuvent supprimer le privilge des autres utilisateurs de
la base de donnes. Pour supprimer un privilge, il nest pas obligatoire de lavoir accord.
Syntaxe:
REVOKE {system_privilege|role}
[, {system_privilege|role} ]...
FROM {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
La commande REVOKE ne peut supprimer que des privilges qui ont t directement accord avec
une commande GRANT.
La suppression de privilges systme a un effet sur quelques objets dpendants.
Par exemple, si SELECT ANY TABLE est attribu un utilisateur et si lutilisateur a cr des
procdures ou des vues qui utilisent des tables se trouvant dans dautres schmas, la suppression de ce
privilge rend invalide les procdures ou les vues.
Exemple:
REVOKE
FROM

CREATE TABLE
emi;
Supprime le privilge CREATE TABLE de lutilisateur Emi

3.2.7.Supprimer des privilges systme WITH ADMIN


OPTION

Il ny a pas deffets en cascade lors de la suppression dun privilge systme, mme si il a t donn
avec WITH ADMIN OPTION.
Le scnario suivant explique le schma ci-dessus :

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


1.
2.
3.
4.
5.

24 / 40

le DBA accorde le privilge systme CREATE TABLE Jeff avec ADMIN OPTION
Jeff cr une table
Jeff attribue le privilge systme CREATE TABLE Emi
Emi cr un table
Le DBA supprime le privilge systme CREATE TABLE Jeff.

Il en rsulte que :
- La table de Jeff existe toujours, mais aucune table ne peut tre cre
- La table dEmi existe encor et elle a toujours le privilge systme CREATE TABLE.

3.3.Privilges sur les objets


3.3.1.Privilges sur les objets

Un privilge objet est un privilge ou un droit pour excuter une action particulire sur une table, une
vue, une squence, une procdure, une fonction ou un package spcifique.
Chaque objet a une configuration particulire dattribution de privilge. La table a des listes de
privilges pour des objets varis.
Notez que les seuls privilges qui sappliquent un ordre sont SELECT et ALTER.
UPDATE, REFERENCES et INSERT peuvent tre limits en indiquant un sous-ensemble de
colonnes trait. Un SELECT peut tre limit par la cration dune vue avec un sous-ensemble de
colonnes et une attribution du privilge SELECT sur cette vue. Une attribution de privilge sur un
synonyme est convertie une attribution de privilge sur la table de base rfrence par le synonyme.

3.3.2.Accorder des privilges sur des objets


On utilise lordre GRANT pour attribuer des privilges objets.
Pour accorder des privilges, lobjet doit tre dans votre schma ou vous devez avoir le privilge
WITH GRANT OPTION.
Par dfaut, si vous tes propritaire dun objet, tous les privilges sur cet objet sont automatiquement
acquis.
Pour des raisons de scurit, il faut faire attention aux privilges que vous accordez aux autres
utilisateurs.
Syntaxe:
http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

25 / 40

GRANT

{ object_privilege [(column_list)]
[, object_privilege [(column_list)] ]...
|ALL [PRIVILEGES]}
ON
[schema.]object
TO
{user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH GRANT OPTION]
Avec:
object_privilege
column_list

: qui spcifie le privilge objet attribuer


: dfinit une colonne dune table ou dune vue (Cela ne peut tre dfinit
uniquement lors d lattribution des privilges INSERT, REFERENCE ou
UPDATE)

ALL

: Accorde tous les privilges pour lobjet qui a t accord avec WITH
ADMIN OPTION

ON object

: identifie lobjet sur lequel les privilges ont t attribus

WITH GRANT OPTION : donne la possibilit dattribu des privilges objets dautre utilisateurs ou
rle.

3.3.3.Supprimer des privilges sur des objets


Lordre REVOKE est utilis pour supprimer des privilges objets. Pour supprimer un privilge objet,
lutilisateur doit tre celui qui la accord.
Syntaxe:
REVOKE
ON
TO

{ object_privilege [(column_list)]
[, object_privilege [(column_list)] ]...
|ALL [PRIVILEGES]}
[schema.]object
{user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[CASCADE CONSTRAINTS]

Avec :
ALL

: Supprime tous les privilges objet qui ont t accord lutilisateur

ON

: Identifie lobjet sur lequel les privilges objet sont supprims

FROM

: Identifie des utilisateurs ou des rle qui ont leurs privilges objets
supprims

CASCADE CONSTRAINTS

: Supprime toutes les contraintes dintgrit rfrentielle que la


suppression a dfinit en utilisant les privilges REFERENCES ou
ALL

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

26 / 40

3.3.4.Supprimer des privilges sur des objets WITH


GRANT OPTION

Des effets en cascade peuvent tre observ lors de la suppression dun privilge systme reli une
opration de DML. Par exemple, si SELECT ANY TABLE est attribu un utilisateur et que ce
dernier a cr des procdures utilisant la table, toutes les procdures se trouvant dans le schma de
lutilisateur doivent tre recompiles avant quelles ne puissent tre rutilises.
La suppression dobjet privilge aura aussi un effet en cascade quand WITH GRANT OPTION est
donn.
Le scnario suivant explique le schma ci-dessus :
- Jeff a le privilge objet SELECT sur la table EMPLOYEES avec GRANT OPTION.
- Jeff donne le privilge SELECT sur la table EMPLOYEES Emi.
- Plus tard, Jeff perd le privilge SELECT. Cette suppression de privilge un effet en cascade
sur Emi.

3.3.5.Rcuprer des informations sur les privilges


Pour rcuprer des informations sur les privilges, nous avons quatre vues du dictionnaire de
donnes :
BDA_SYS_PRIVS
SESSION_PRIVS
DBA_TAB_PRIVS
DBA_COL_PRIVS

liste les privilges systme attribus aux utilisateurs et aux rles.


liste les privilges dont les utilisateurs disposent actuellement.
liste toutes les attributions de privilges sur tous les objets de la base de
donnes.
dcrit toutes les attributions de privilges sur les colonnes dans la base de
donnes.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

27 / 40

4.Gestion des rles


4.1.Prsentation des rles
4.1.1.Prsentation des Rles

Oracle fournit une facilit de contrle avec la gestion des privilges par des rles.
Les rles sont des groupes de privilges qui sont accord des utilisateurs ou dautres rles. Ils sont
conus pour faciliter ladministration des privilges dans la base de donnes.
Un rle est attribu ou supprim des utilisateurs avec les mme commandes utilises pour accorder
ou enlever des privilges systmes.
Il peut tre attribu nimporte quel utilisateur ou rle. Cependant, un rle ne peut pas tre attribu ni
lui-mme et ni circulairement.
Il peut se composer de privilge systme et objet.
Il peut tre activ ou dsactiv pour chaque utilisateur qui ont ce rle.
Il peut demander un mot de passe pour tre activ.
Son nom doit tre unique parmi les logins et les autres noms de rle.
Il nappartient personne et ne se trouve dans aucun schma.
La description du rle se trouve dans le dictionnaire de donnes.

4.1.2.Les avantages de rles


Lutilisation de rles simplifie la gestion des privilges. Au lieu daccorder le mme type de privilge
un ensemble dutilisateur, vous pouvez accorder ces privilges un rle et ainsi attribuer le rle
chaque utilisateur.
Si les privilges associs un rle sont modifis, tous les utilisateurs, qui ont ce rle, auront
automatiquement et immdiatement leurs privilges modifis, ce qui fournit une gestion dynamique
des privilges.
Les rles peuvent tre activs ou dsactivs temporairement. Lactivation dun rle peut aussi tre
utilis pour vrifier quun utilisateur a rle.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

28 / 40

On peut assigner des rles aux utilisateurs de la base de donnes en utilisant les commandes ou les
outils du systme dexploitation.
Lutilisation de rle rduit les nombre daccords de privilges dans le dictionnaire de donnes.

4.2.Implmentation des rles


4.2.1.Crer des rles
Lordre CREATE ROLE permet de crer un rle. Pour cela il faut avoir le privilge systme
CREATE ROLE. Quand vous crer un rle qui est NOT IDENTIFIED, INDENTIFIED
EXTERNALLY ou By password, Oracle attribut le rle avec ADMIN OPTION.
Syntaxe:
CREATE ROLE
role
[NOT IDENTIFIED |
IDENTIFIED
{BY password | EXTERNALLY | GLOBALLY | USING
package}]
Avec:
role

: est le nom du rle.

NOT IDENTIFIED

: indique quaucune authentification nest requise pour activer le rle.

INDENTIFIED

: indique quune authentification est requise pour activer le rle.

BY password

: fournit le mot de passe que lutilisateur doit spcifier quand il active le rle.

USING package

: cr un rle dapplication, cest est un rle qui peut tre activ uniquement
par des applications utilisant un package autoris.

ESTERNALLY

: indique quun utilisateur doit tre autoris par un service externe (tel que le
systme dexploitation ou le service 3-tiers) avant dactiver le rle.

GLOBALLY

: indique qu'un utilisateur doit tre autoris employer le rle par le service
d'annuaire d'entreprise avant que le rle soit activ avec lordre de SET
ROLE, ou l'ouverture.

4.2.2.Rles prdfinis
Nom du rle
CONNECT,
RESOURCE, DBA
EXP_FULL_DATABASE
IMP_FULL_DATABASE
DELETE_CATALOG_ROLE

Description
Ces rles sont fournient pour une compatibilit
avec les anciennes versions
Des Privilges pour exporter la base de donnes
Des privilges pour importer la base de donnes
Database
Le privilge DELETE sur les tables du
dictionnaire de donnes

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs


EXECUTE_CATALOG_ROLE
SELECT_CATALOG_ROLE

29 / 40
Le privilge EXECUTE sur les packages du
dictionnaire de donnes
Le privilge SELECT sur les tables du
dictionnaire de donnes

Les rles lists sont dfinit automatiquement par les bases de donnes quand vous excutez les scripts
de cration de base de donnes.
Les rles CONNECT, RESSOURCE et DBA sont fournis pour assurer la compatibilit avec les
anciennes versions dOracle.
Les rles EXP_FULL_DATABASE et IMP_FULL_DATABASE sont fournis pour utiliser les utilits
dimport et dexport.
Les rles DELETE_ CATALOG_ROLE DELETE, EXECUTE_CATALOG_ROLE EXECUTE et
SELECT_CATALOG_ROLE SELECT sont fournis pour accder aux vues et packages du
dictionnaire de donnes. Ces rles peuvent tre accords aux utilisateurs qui nont pas le rle DBA
mais qui ont besoin daccder aux vues et aux packages du dictionnaire de donnes.
Le serveur Oracle cre aussi dautres rles qui vous autorisent administrer la base de donnes. Sur
beaucoup de systmes dexploitation, ces rles sont appels OSOPER et OSDBA, cela dpend du
systme dexploitation que vous avez.
Dautres rles sont dfinis par des scripts SQL fournis avec la base de donnes.
Par exemple, AQ_ADMINISTRATOR_ROLE donne des privilges pour administrer Advanced
Queuing. AQ_USER_ROLE est obsolte mais il est conserv pour tre compatible avec la version 8.0.

4.2.3.Modifier des rles


On ne peut modifier que la mthode dauthentification dun rle. Vous devez avoir un rle avec une
option ADMIN ou avoir le privilge systme ALTER ANY ROLE.
Syntaxe:
ALTER ROLE
role [NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY | GLOBALLY | USING
package}]
Exemple:
ALTER ROLE
hr_clerk
IDENTIFIED EXTERNALLY;

4.2.4.Assigner des rles


Pour attribuer un rle un utilisateur, la syntaxe est la mme que pour lattribution dun privilge
systme un utilisateur :
GRANT
TO

role [, role ]...


{user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

30 / 40

Avec:
role
user
PUBLIC
WITH ADMIN OPTION

: est un rle attribu ou un rle qui reoit le rle.


: est lutilisateur qui reoit le rle.
: Assigne le rle tous les utilisateurs.
: permet lutilisateur dassigner le rle dautre utilisateurs ou rles.

Lutilisateur qui cre un rle est implicitement assign ce rle avec ADMIN OPTION. Un utilisateur
qui na pas assign de rle avec ADMIN OPTION doit avoir le privilge systme GRANT ANY
ROLE pour attribu ou retir un rle un utilisateur.
Le nombre maximum de rles de base de donnes que des utilisateurs peuvent avoir est configur par
le paramtre dinitialisation MAX_ENABLED_ROLES.

4.3.Gestion des rles


4.3.1.Mettre en place des rles par dfaut
Un utilisateur peut avoir beaucoup de rles. Un rle par dfaut est un sous-ensemble de ces rles qui
sont automatiquement activs lors de la connexion de lutilisateur. Par dfaut, tous les rles assigns
un utilisateur sont activs la connexion sans avoir besoin de mot de passe. On limite les rles par
dfaut pour un utilisateur avec la commande ALTER USER.
La clause DEFAULT ROLE sapplique seulement aux rles qui ont t attribu directement
lutilisateur avec lordre GRANT. Cette clause ne peut pas tre utilis pour activer :
- des rles non attribus lutilisateur
- des rles attribus par dautres rles
- des rles grs par dautres services externes (comme le systme dexploitation)
Syntaxe:
ALTER USER
DEFAULT ROLE

user
{role [,role]...
| ALL [EXCEPT role [,role]... ] | NONE}

Avec:
user

: cest le nom de lutilisateur

role

: est le rle qui doit tre le rle par dfaut pour lutilisateur

ALL

: tous les rles sont attribus comme rle par dfaut sauf ceux qui sont dans la
liste de EXCEPT

EXCEPT

: indique que les rles suivants ne sont pas inclut dans les rles par dfaut.

NONE

: Aucun rle ne sera attribu comme rle par dfaut.

Vous ne pouvez pas dfinir les rles par dfaut avec la commande CREATE USER.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

31 / 40

4.3.2.Les rles dapplication


La clause USING suivit dun nom de package, dans lordre CREATE ROLE cr un rle
dapplication. Un rle dapplication peut tre activ uniquement par des applications utilisant un
package PL/SQL autoris.
Les dveloppeurs dapplications nont pas besoin de scuriser un rle en incluant des mots de passe
dans les applications. Au lieu de cela, ils peuvent crer un rle dapplication et spcifier quel package
PL/SQL est autoris activer le rle.
Exemple:
CREATE ROLE
IDENTIFIED USING

admin_role
hr.employee;

Dans cet exemple, admin_role est un rle dapplication et le rle peut tre activ seulement par des

modules dfinis dans le package PL/SQL hr.employee.

4.3.3.Activer et dsactiver des rles


Activer ou dsactiver des rles pour activer ou dsactiv temporairement les privilges associs au
rles. Pour activer un rle, il doit tre dabord attribu un utilisateur.
Quand un rle est activ, lutilisateur peut utiliser les privilges attribus ce rle. Si un rle est
dsactiv, lutilisateur ne peut pas utiliser les privilges associs ce rle sauf si un autre rle ou ces
privilges sont aussi attribus directement lutilisateur. Des rles sont activs pour une session. A la
session suivante, les rles actifs de lutilisateur seront retourns comme rle par dfaut.
La commande SET ROLE et la procdure DBMS_SESSION.SET_ROLE activent tous les rles inclus
dans la commande et dsactivent les autres rles. Les rles peuvent tre activs partir de nimporte
quels outils ou programmes qui permettent des commandes PL/SQL ; cependant, un rle ne peut tre
activ dans une procdure stocke.
Vous pouvez utiliser la commande ALTER USER DEFAULT ROLE pour indiquer quels rles
seront activs pour lutilisateur sa connexion. Tous les autres rles sont dsactivs.
Un mot de passe peut tre demand pour activer un rle. Le mot de passe doit tre inclut dans la
commande SET ROLE pour activer le rle. Les rles par dfaut assigns lutilisateur nont pas
besoin de mot de passe ; ils sont activs la connexion, comme des rles sans mot de passe.
Un rle ne peut pas tre activ partir dune procdure stocke, car son action peut changer la
scurit du domaine (la configuration des privilges) qui permet la procdure dtre appel en
premier lieu. Ainsi, en PL/SQL, des rles peuvent tre activs ou dsactivs dans des blocs anonymes
et des procdures dapplication (par exemple, Oracle Form Procedure), mais pas dans des procdures
stockes.
Si une procdure stocke contient la commande SET ROLE, lerreur suivante est gnre lors de son
excution :
ORA-06565: cannot execute SET ROLE from within stored
procedure

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

32 / 40

Syntaxe:
SET ROLE

{role [ IDENTIFIED BY password ]


[, role [ IDENTIFIED BY password ]]...
| ALL [ EXCEPT role [, role ] ...]
| NONE }

Avec:
Role

: le nom du rle.

IDENTIFIED BY password

: fournit le mot de passe pour activer le rle.

ALL

: active tous les rles attribus lutilisateur actuel, sauf ceux lister
aprs la clause EXCEPT (vous ne pouvez pas utilis cette option pour
activer des rles avec mot de passe).

EXCEPT role

: ne doit pas activer ces rles.

NONE

: dsactive tous les rles de la session actuelle (seul les privilges


assigns directement sont actifs).

Loption ALL sans la clause EXCEPT fonctionne seulement si tous les rles, qui sont activs, nont
pas de mot de passe.

4.3.4.Enlever des rles des utilisateurs


Lordre SQL REVOKE enlve un rle un utilisateur. Tout utilisateur avec loption ADMIN pour un
rle peut enlever ce rle tous les autres utilisateurs ou rles de la base de donnes. Il y a aussi les
utilisateurs avec GRANT ANY ROLE qui peuvent enlever tous les rles aux utilisateurs.
Syntaxe :
REVOKE
FROM

role [, role ]...


{user|role|PUBLIC}
[, {user|role|PUBLIC} ]...

Avec:
role

: est le rle qui doit tre enlev ou le rle partir duquel sera enlev le rle.

user

: est lutilisateur partir duquel sera enlev le rle.

PUBLIC

: enlve le privilge ou le rle tous les utilisateurs.

Exemple:
REVOKE
FROM

oe_clerk
scott;
enlve Scott le rle oe_clerck

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

33 / 40

4.3.5.Supprimer des rles


Pour supprimer rle dans la base de donne, il faut utiliser la syntaxe suivante :
DROP ROLE role;
Quand vous supprimer un rle, le serveur Oracle lenlve tous les utilisateurs et rles qui lavait et il
le supprime de la base de donnes.
Vous devez avoir le rle avec loption ADMIN ou avoir le privilge systme DROP ANY ROLE,
pour le supprimer.

4.4.Guide dutilisation des rles


4.4.1.Guide de cration de rle

Parce quun rle contient des privilges ncessaires lexcution dune tache, le nom du rle est
habituellement composer du nom de la tache dapplication ou de lemploi. Lexemple suivant utilise
le nom de la tache de lapplication et lemploi concern pour construire le nom du rle.
1. Crez un rle pour chaque tache dapplication. Le nom du rle dapplication correspond une
tche dans lapplication, cest--dire PAYROLL.
2. Assignez les privilges ncessaires pour excuter la tache du rle dapplication.
3. Crez un rle pour chaque type dutilisateur. Le nom du rle de lutilisateur correspond son
emploi, cest--dire PAY_CLERCK.
4. Assignez les rles dapplication aux rles de lutilisateur.
5. Attribuez les rles dutilisateurs aux utilisateurs.
Si une modification de lapplication demande que de nouveaux privilges doivent excuter la tache
payroll, alors le DBA simplement besoin dassigner les nouveaux privilges au rle dapplication,
PAYROLL. Ainsi, tous les utilisateurs qui utilisent cette tache, recevront ces nouveaux privilges.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

34 / 40

4.4.2.Guide dutilisation des mots de passe et des rles


par dfaut

Les mots de passe fournissent un niveau de scurit supplmentaire lors de lactivation du rle. Par
exemple, lapplication pourrait demander lutilisateur dentrer un mot de passe pour activer le rle
PAY_CLERK, parce que ce rle peut tre utilis pour publier des informations confidentielles.
Le mot de passe permet dactiver un rle uniquement par une application. Cette mthode est illustre
par les points suivants :
1. Le DBA a attribu lutilisateur deux rles, PAY_CLERK et PAY_CLERK_RO.
2. PAY_CLERK a tous les privilges ncessaires pour excuter la fonction payroll_clerk.
3. PAY_CLERK_RO (RO pour Read Only) a seulement le privilge SELECT sur les tables qui
sont demands lexcution de la fonction payroll_clerk.
4. Lutilisateur peut se connecter SQL*Plus pour excuter des requtes, mais il ne peut pas
modifier les donnes, car PAY_CLERK nest pas un rle par dfaut et lutilisateur ne connat
pas son mot de passe.
5. Quand lutilisateur se connecte lapplication de payroll, cela active PAY_CLERK en
fournissant le mot de passe. Il est cod dans le programme et illisible par lutilisateur.

4.4.3.Afficher les informations dun rle


Plusieurs vues du dictionnaire de donnes qui contiennent des informations sur des privilges des
utilisateurs, contiennent galement des informations sur les privilges des rles.
Vue
DBA_ROLES
DBA_ROLE_PRIVS
ROLE_ROLE_PRIVS
DBA_SYS_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
SESSION_ROLES

Description
Tous les rles qui existent dans la base de
donnes
Les rles assigns aux utilisateurs et aux rles
Les rles qui sont attribus aux rles
Les privilges systmes attribus aux rles et aux
utilisateurs
Les privilges systmes assigns aux rles
Les privilges objets donns aux rles
Les rles que lutilisateur actuel a activs

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

35 / 40

Exemple :
SQL> SELECT
2 FROM

role, password_required
dba_roles;

ROLE
--------------------CONNECT
RESOURCE
DBA
.
.
.
SELECT_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
IMP_FULL_DATABASE
EXP_FULL_DATABASE
SALES_CLERK HR_CLERK

PASSWORD
----------NO
NO
NO

NO
NO
NO
NO
YES
EXTERNAL

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

36 / 40

5.Audit
5.1.Catgories daudit
5.1.1.Audit
Si un utilisateur non autoris supprime des donnes, le DBA pourrait dcider dauditer toutes les
connexions la base de donnes et toutes les suppressions russite ou non dans les tables de la base
de donnes. Le DBA peut, par exemple, avoir des statistiques sur la mise jour des tables, lexcution
des entre/sortie logiques ou le nombre dutilisateur connects aux heures de pointes.

5.1.2.Guide dutilisation daudit


Il faut limiter laudit en identifiant dabord les conditions daudit et en rglant les options minimales
daudit qui complteront les conditions. Laudit dobjet doit tre employ, si possible, pour rduire le
nombre dentre gnrer. Si laudit de requte et de privilge est ncessaire, la configuration suivant
permet de rduire au minimum la gnration daudit :
- spcifiez les utilisateurs auditer.
- Auditez par session et non par accs.
- Auditez les succs ou les chec, mais pas les deux.
- Les enregistrements daudit peuvent tre crit sur SYS.AUD$ ou sur laudit du systme
dexploitation, mais cela dpend du systme dexploitation.
Si laudit atteint sa taille maximale, aucun vnement ne peut tre enregistr et laudit des requtes ne
sexcutera pas correctement. Des erreurs sont retournes tous les utilisateurs qui excutent des
requtes audits. Vous devez alors librer de lespace dans le fichier daudit avant lexcution de
nouvelles requtes.
Pour tre sur que le fichier daudit ne grossit pas trop rapidement, il faut :
- activer laudit que si ncessaire.
- Etre slectif sur les spcifications des options de laudit
- Contrler troitement laudit des objets de schma. Les utilisateurs peuvent dclencher un
audit sur leurs objets.
- Le privilge AUDIT ANY permet lutilisateur de dclencher un audit.
Il faut supprimer priodiquement les enregistrements daudit du fichier daudit avec les commandes
DELETE et TRUNCATE. Il se trouve dans le dossier $ORACLE_HOME/rdbms/audit directory.
Vous pouvez protger le fichier daudit de sorte que les informations daudit ne puissent pas tre
ajoutes, modifies ou supprimes.
Exemple:
AUDIT delete ON sys.aud$ BY ACCESS;
Pour protger le fichier daudit de suppressions non autorises, seul le DBA devrait avoir le rle
DELETE_CATALOG_ROLE.
Comme les nouveaux enregistrements sont insrs dans le fichier daudit de la base de donnes, la
table AUD$ peut se dvelopper sans limite. Bien que vous ne devriez pas supprimer la table AUD$,

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

37 / 40

vous pouvez supprimer ou tronquer ses donnes car elles ne sont l que pour information et
ninfluencent pas le bon fonctionnement de linstance Oracle.
Puisque la table AUD$ a une volution alatoire (elle grossit, puis rtrcit), elle devrait tre stocke
hors du tablespace du systme.
Pour dplacer la table AUD$ dans le tablespace AUDIT_TAB, il faut :
- sassurer que laudit est dsactiv
- excuter la commande suivante :
ALTER TABLE
MOVE TABLESPACE
-

puis excuter la commande suivante :


CREATE INDEX
ON
TABLESPACE

aud$
AUDIT_TAB;

i_aud1
aud$(sessionid, ses$tid)
AUDIT_IDX;

enfin, activer laudit

5.1.3.Catgories daudit
Indpendamment de laudit de la base de donnes, Oracle enregistre toujours quelques oprations de
base de donnes dans le fichier daudit du systme dexploitation, qui sont :
-

Le lancement de linstance : Laudit dtaille le dmarrage de linstance par lutilisateur du


systme dexploitation ; lidentifiant de lutilisateur, la date, le time stamp et ltat de laudit
(si il est activ ou pas).
Larrt de linstance : les dtails au niveau du systme dexploitation lorsque lutilisateur
arrte linstance ; lidentifiant de lutilisateur, la date et le time stamp.
Les privilges dadministration : les dtails au niveau du systme dexploitation quand
lutilisateur se connecte Oracle avec des privilges dadministrateur.

Laudit de la base de donnes surveille et enregistre une slection daction des utilisateurs de la base.
Les informations sur les vnements sont stockes dans la table daudit.
La table daudit peut tre employe pour tudier des activits suspectes. Par exemple, si un utilisateur
non autoris supprime les donnes dune table, ladministrateur de la base peut dcider de faire un
audit sur toutes les connexions la base de donnes en rapport avec un succs ou un chec de
suppression de ligne dans la table de la base.
Laudit peut galement tre employ pour surveiller ou recueillir des donnes sur des activits
spcifiques de la base de donnes. Par exemple, ladministrateur de la base peut rcuprer des
statistiques sur des tables qui ont t mises jour, le nombre dentres/sorties logiques qui ont t
excut et le nombre dutilisateur qui se sont connects lheure de pointe.
Laudit de base de donnes ne peut pas enregistr les valeurs des colonnes. Si les changements des
colonnes de la base de donnes ont besoins dtre surveills et que les valeurs de colonnes doivent
tre stockes chaque modification, il faut utiliser une application daudit.
Lapplication daudit peut tre faite par un code client, des procdures stockes ou des trigger de base
de donnes.

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

38 / 40

5.2.Audit sur la base de donnes


5.2.1.Audit sur la base de donnes

Une fois que vous avez dcidez dauditer, il faut configurer le paramtre dinitialisation
AUDIT_TRAIL pour activer laudit de linstance. Ce paramtre indique si les informations daudit
sont crites dans une table de la base de donne ou dans le fichier daudit du systme dexploitation.
AUDIT_TRAIL = value
O value peut prendre une des valeurs suivante :
DB

active laudit et dirige tous les enregistrement daudit dans la table daudit de la base de
donnes (SYS.AUD$)
OS
active laudit et dirige tous les enregistrements daudit dans le fichier daudit du systme
dexploitation (si cela est possible sur le systme dexploitation)
NONE dsactive laudit (cest la valeur par dfaut)
Les enregistrements daudit ne sont pas crits dans le fichier daudit si le DBA configure le paramtre
AUDIT_TRAIL DB ou OS. Bien que les ordres SQL, AUDIT et NOAUDIT peuvent tre employ
tout moment, les informations daudit ne seront crites dans le fichier daudit que si le DBA configure
le paramtre AUDIT_TRAIL dans le fichier dinitialisation.
Ensuite, il faut configurer les options daudit avec la commande AUDIT. Avec la commande AUDIT,
on dfinit quelles commandes, utilisateurs, objets ou privilges auditer. Vous pouvez aussi dfinir si
un enregistrement daudit peut tre gnr chaque occurrence ou seulement un fois par session. Si
une option daudit nest pas ncessaire, vous pouvez interrompre loption avec la commande
NOAUDIT.
Quand les utilisateurs excutent des requtes PL/SQL ou SQL, le processus serveur examine les
options audit pour dterminer si la requte excute gnre un enregistrement daudit. Si ncessaire,
les ordres SQL dans des units de programme PL/SQL sont individuellement audits, quand le
programme est excut. Comme les vues et les procdures peuvent rfrencer dautres objets de base
http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

39 / 40

de donnes, quelques enregistrements daudit peuvent tre gnrs comme le rsultat dune excution
dordre simple.
La gnration et linsertion des informations dans les tables daudit sont indpendantes de la
transaction de lutilisateur ; donc, si une transaction de lutilisateur est annule, la table daudit reste
intacte. Puisque lenregistrement daudit est gnr pendant la phase dexcution, une erreur de
syntaxe qui se produit pendant la phase de parse, ne gnrera pas un enregistrement daudit.
Pour examiner les informations gnrer pendant laudition, il faut interroger les vues du dictionnaire
de donnes de la table daudit ou utiliser les outils du systme dexploitation pour voir son fichier
daudit. Ces informations sont employes pour dceler des activits suspectes ou pour monitorer les
activits de la base de donnes.

5.2.2.Options daudit
Nous avons quelques options daudit :
Laudit des requtes : Cest un audit slectif sur les ordres SQL et non sur les objets de schma sur
lesquels ils fonctionnent. Vous pouvez configurer laudit des requtes pour auditer des utilisateurs
spcifiques ou tous les utilisateur de la base de donnes.
Exemple :
AUDIT TABLE ;
Traque les ordres DDL indpendamment de la table sur laquelle ils sont publis.
Laudit sur les privilges : Cest un audit slectif sur les privilges systmes pour excuter des actions
correspondantes. Il est possible dutiliser cet audit sur un ou plusieurs utilisateur.
Exemple :
AUDIT CREATE ANY TRIGGER;
Traque le privilge CREATE ANY TRIGGER
Laudit sur les objets du schma: Cest un audit slectif dordre spcifique sur des objets particulier
dun schma. Laudit sapplique toujours tous les utilisateurs de la base de donnes.
Exemple :
AUDIT SELECT ON emi.orders;
Traque tous les ordres SELECT fait sur la table ORDERS du schma Emi
Vous pouvez dfinir nimporte quelle option daudit et spcifier les conditions suivantes :

WHENEVER SUCCESSFUL / WHENEVER NOT SUCCESSFUL


BY SESSION / BY ACCESS
Pour des utilisateurs spcifiques ou pour tous les utilisateurs de la base de donnes (uniquement pour
laudit des requtes et des privilges).
Laudit de prcision : Cela fournit le monitoring de laccs au donnes bas sur le contenu. Un
package PL/SQL DBMS_FGA administre des politiques daudit. En utilisant DBMS_FGA, le DBA
http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

Gestion des utilisateurs

40 / 40

cr une police daudit sur la table cible. Si une des lignes retournes par la requte correspond aux
conditions daudit, un vnement daudit est gnr, incluant le nom de lutilisateur, le texte SQL, la
variable demand, le nom de police, lid de session, le timestamp et dautres attributs sont insrs
dans la table daudit.
Lordre NOAUDIT est employ pour arrter un audit dfinit par la commande AUDIT.
Lordre NOAUDIT inverse les effets de lordre AUDIT, mais il a la mme syntaxe. Par consquent, si
un ordre AUDIT (lordre A) active un audit sur un utilisateur spcifique, et quun deuxime ordre
(lordre B) active un audit sur tous les utilisateurs, puis un ordre NOAUDIT, pour dsactiver laudit
sur tous les utilisateurs, inverse lordre B mais laisse ordre A actif auditer de lutilisateur que lordre
A dfinit.

5.2.3.Vues sur les options daudit


Pour voir les options daudit, il existe quelques vues du dictionnaire de donnes :

ALL_DEF_AUDIT_OPTS

Vues du dictionnaire de donnes

Description
Les options daudit par dfaut

DBA_STMT_AUDIT_OPTS

Les options daudit des requtes

DBA_PRIV_AUDIT_OPTS

Les options daudit des privilges

DBA_OBJ_AUDIT_OPTS

Les options daudit des objets dun schma

5.2.4.Obtenir des enregistrements daudit


La table daudit de la base de donnes (SYS.AUD$) est une table simple dans chaque dictionnaire de
la base de donnes Oracle. Il y a quelques vues disponibles :
Vues du dictionnaire de donnes

DBA_AUDIT_TRAIL
DBA_AUDIT_EXISTS

Description
Toutes les listes daudit rentr
Les
enregistrements
pour

AUDIT

EXISTS/NOT EXISTS
DBA_AUDIT_OBJECT
DBA_AUDIT_SESSION
DBA_AUDIT_STATEMENT

Les enregistrements concernant les objets de


schma
Tous les vnements de connexion ou de
dconnexion
Les enregistrements de laudit des requtes

http://www.labo-oracle.com
Ce document est la proprit de Supinfo et est soumis aux rgles de droits dauteurs

You might also like