4. Le langage PL/SQL est un langage de programmation
de quatrième génération, propriétaire
Oracle, qui fournit des extensions procédurales du
langage SQL. Il offre un environnement de
programmation commun pour les bases de données et
applications Oracle, quel que soit le
système d'exploitation ou la plate-forme matérielle.
Il permet de :
définir un ensemble de commandes contenues dans
ce que l'on appelle un "bloc" PL/SQL. Un bloc PL/SQL
peut lui-même contenir des sous-blocs.
Le PL/SQL peut être utilisé sous 3 formes :
un bloc de code, exécuté comme une commande
SQL.
un fichier de commande PL/SQL
un programme stocké
Définition : Procedural Language / Structured Query Language
5. Structured’unblocPL
Comment créer un bloc PL/SQL
Syntaxe :
Partie DECLARE et
EXCEPTION sont
optionnel
DECLARE
Variables, curseurs, exceptions définies
BEGIN
Instructions SQL & PL/SQL
EXCEPTION
Action à réaliser quand une exception est
levée
END;
/
7. Administrer les objets PL/SQL
Un DBA doit pouvoir:
• Identifier les Objets PL/SQL
• Recommander l’utilisation appropriée du
langage PL/SQL
• Charger les objets PL/SQL dans la base de
données
• Assister les développeurs PL/SQL dans la
résolution des problèmes
8. Objets PL/SQL
Il existe de nombreux types d’objet de base de
données PL/SQL:
• Fonction
• Procédure
• Package
• Corps de Package
• Déclencheur
10. Une fonction est un bloc PL/SQL nommé qui
renvoie obligatoirement une valeur.
Une fonction peut être stockée dans la base de
données, comme objet de base de données, en vue
d'exécutions répétées.
Une fonction peut être appelée en tant que
partie d'une expression
Définition
11. Structured’unefonction
Comment créer une fonction
Syntaxe :
CREATE [OR REPLACE] FUNCTION function_name
(parameter1 [mode1] datatype1,
parameter2 [mode2] datatype2,. . .)
RETURN datatype
IS
PL/SQL Bloc;
Le bloc PL/SQL doit y
avoir au moins une
instruction return
12. Exemple :
CREATE OR REPLACE FUNCTION get_sal (v_id IN emp.empno%TYPE)
RETURN NUMBER
IS
v_salary emp.sal%TYPE :=0;
BEGIN
SELECT sal
INTO v_salary
FROM emp
WHERE empno = v_id;
RETURN (v_salary);
END get_sal;
/
13. Une fonction peut comporter un ou plusieurs paramètres IN, mais ne doit
retourner qu'une seule valeur.
Le code d'une fonction PL/SQL doit contenir une instruction RETURN.
A noter
14. Elle accepte des paramètres en
entrée (listes des arguments).
Une procédure est un bloc
PL/SQL nommé qui effectue une
action spécifique.
Définition Procédure
15. Syntaxepourlacréationd’une
procédure Comment est ce qu’on peut créer une
procédure ?
La Syntaxe :
Une procédure est
appelée à l’aide de la
commande CALL .
CREATE [OR REPLACE] PROCEDURE
procedure_name
(
parameter1 [mode1] datatype1,
parameter2 [mode2] datatype2,
…
)
IS | AS
Block PL/SQL;
16. CREATE OR REPLACE PROCEDURE Augmentation (v_Numemp IN
numéro de l'employé
EMP.empno%Type , v_Pourcent IN NUMBER )
pourcentage d’augmentation
Is
BEGIN -- augmentation de l'employé
Update EMP
Set sal = sal+ sal * v_Pourcent Where empno = v_Numemp ;
END;
/
Exemple
17. D'une façon générale, les procédures ne devraient pas exécuter des
instructions de fin de transaction (COMMIT, ROLLBACK, Ordre DDL) .
La décision d'enregistrer ou annuler la transaction en cours relève du
programme appelant.
A noter
18. Un paquetage/package est un ensemble de procédures et
fonctions regroupées dans un objet nommé. Par exemple :
Le paquetage Oracle DBMS_LOB.
Le paquetage UTL_FILE.
Définition Package
19. Un paquetage est organisé en deux parties distinctes :
Une partie spécification
qui permet de spécifier à la fois les fonctions et procédures publiques ainsi que les
déclarations des types, variables, constantes, exceptions et curseurs utilisés dans le
paquetage et visibles par le programme appelant.
Une partie corps
qui contient les blocs et les spécifications de tous les objets publics listés dans la
partie spécification.
Cette partie peut inclure des objets qui ne sont pas listés dans la partie
spécification, et sont donc privés.
Cette partie peut également contenir du code qui sera exécuté à chaque invocation
du paquetage par l'utilisateur.
Définition
21. Syntaxepourlacréationd’un
package Comment est ce qu’on peut créer un package ?
La Syntaxe pour la spécification:
CREATE [OR REPLACE] PACKAGE nom_package
As
Définition des fonctions , procédure …
End nom_package ;
/
Exemple :
CREATE PACKAGE clients
AS
PROCEDURE insere_client (no INTEGER, nom VARCHAR2, ...);
PROCEDURE supprime_client (no INTEGER);
...
END;
23. Syntaxepourlacréationd’un
package(suite) Comment est ce qu’on peut créer un package ?
La Syntaxe pour le corps:
CREATE [OR REPLACE] PACKAGE BODY nom_package
As
Définition des fonctions
BEGIN
…
END;
Définition procédure
BEGIN
…
END;
…..
End nom_package ;
/
25. Les avantages de pl/sql package
Une meilleur performance
Information en cachette
Une conception facile de l’application
La modularité
26. Les packages PL/SQL intégrés fournis avec Oracle Database 10g
permettent l'accès à des fonctionnalités de base de données .
Ils comprennent également de nombreux utilitaires d'administration et
de maintenance.
Packages intégrés
27. • Les packages utilisés par un administrateur
dépendent du type d'application que la base de
données exécute.
• Voici quelques-uns des packages d'administration
et de maintenance les plus courants
28. Le package PL/SQL intégrés
• DBMS_STATS permet de collecter, modifier, consulter,
exporter et supprimer les statistiques relatives à vos
tables.
• DBMS_TTS : validation des tablespaces transportables .
• DBMS_SESSION : accès PL/SQL aux instructions ALTER
SESSION et SET ROLE
29. Le package DBMS_OUTPUT
Get_line (ligne out varchar2, statut
out integer) : extrait une ligne du
tampon de sortie.
Get_lines (lignes out varchar2, n
in out integer) : extrait à partir du
tampon de sortie un tableau de n
lignes.
• New_line : place un marqueur de
fin de ligne dans le tampon de
sortie.
• Put (variable|conatante in
{varchar2|number|date} :
combinaison de put et new_line.
•
• Enable (taille tampon in integer
default 2000) : permet de mettre
en route le mode trace dans une
procédure ou une fonction.
• Disable : permet de désactiver le
mode trace dans une procédure ou
une fonction.
Ce package permet de stocker de l’information dans un tampon avec les procédures
PUT ou PUT_LINE.
Il est possible de récupérer l’information grâce aux procédures GET et GET_LINE
30. Les déclencheurs
• Un déclencheur est un bloc PL/SQL associé à une vue
ou une table, qui s'exécutera lorsqu'une instruction du
langage de manipulation de données (DML) sera
exécutée
• Il est utilisé pour implémenter des règles de gestion
complexes et pour étendre les règles d’intégrité
référentielle associée à table lors de leur création de cette
dernière
31. Caractéristiques d'un Trigger
• Le traitement est exprimé en PL/SQL. Il peut lui-même faire appel à des procédures
et des fonctions écrites en PL ou Java.
• Son code est stocké dans la base de données.
• Un déclencheur peut être actif ou non
• Si un déclencheur aboutit, la transaction qui l'a appelé peut se poursuivre
• Le déclenchement peut se propager en cascade, tout en respectant le principe
d'atomicité d'une transaction OPEN_CURSORS
• Un déclencheur s'exécute dans le cadre d'une transaction. Il ne peut donc pas
contenir d'instruction COMMIT ou ROLLBACK ou toute instruction générant une fin
de transaction implicite (ordre DDL)
32. Syntaxe pour la création d’un trigger
Create or replace trigger <trigger_name>
before/after
insert or update of <colonne1>, <colonne2>, ...
or delete
on <tab_name>
[for each row [when (<trigger_condition>)]]
[declare
types, constantes ou variables ´eventuelles]
begin
texte du trigger
end;
Comment est ce qu’on peut créer un trigger ?
33. Exemple pour la création d’un trigger
CREATE OR REPLACE TRIGGER myFirstTrigger
2 BEFORE UPDATE OF ename ON emp
3 FOR EACH ROW
4 BEGIN
5 DBMS_OUTPUT.ENABLE(20000);
6 DBMS_OUTPUT.PUT_LINE(:NEW.ENAME|| ‘ ‘
||:OLD.ENAME);
7 EXCEPTION
8 WHEN OTHERS THEN
9 DBMS_OUTPUT.PUT_LINE(SQLERRM);
10 END;
Comment est ce qu’on peut créer un trigger ?
34. Résolution multi-événements
• Un Trigger peut répondre à plusieurs événements.
• Dans ce cas, il est possible d'utiliser les prédicats
intégrés INSERTING, UPDATING ou DELETING pour
exécuter une séquence particulière du traitement
en fonction du type d'événement
35. Exemple pour la création d’un trigger
CREATE OR REPLACE TRIGGER myFirstTrigger
AFTER UPDATE OR INSERT ON emp
FOR EACH ROW
BEGIN
DBMS_OUTPUT.ENABLE(20000);
IF INSERTING THEN
DBMS_OUTPUT.PUT_LINE(' INSERT ');
END IF;
IF UPDATING('ENAME') THEN
DBMS_OUTPUT.PUT_LINE(' UPDATED ' || :NEW.ENAME);
END IF;
END;
/
Comment est ce qu’on peut créer un trigger ?
36. Maintenance des déclencheurs
• Activation/désactivation d'un déclencheur:
ALTER TRIGGER nom_déclencheur DISABLE
ALTER TRIGGER nom_déclencheur ENABLE
ALTER TABLE nom_table DISABLE ALL TRIGGERS
ALTER TABLE nom_table ENABLE ALL TRIGGERS
37. Maintenance des déclencheurs
(Suite)
• Les informations sur les déclencheurs sont visibles à travers les vues du
dictionnaire de données
USER_TRIGGERS pour les déclencheurs appartenant au schéma.
ALL_TRIGGERS pour les déclencheurs appartenant aux schémas
accessibles
DBA_TRIGGERS pour les déclencheurs appartenant à tous les schémas .
La colonne BASE_OBJECT_TYPE permet de savoir si le déclencheur est basé
sur une table, une vue, un schéma ou la totalité de la base
La colonne TRIGGER_TYPE permet de savoir s'il s'agit d'un déclencheur
BEFORE, AFTER ou INSTEAD OF,si son mode est FOR EACH ROW ou non
s'il s'agit d'un déclencheur évènementiel ou non
La colonne TRIGGERING_EVENT permet de connaître l'événement
concerné par le déclencheur
La colonne TRIGGER_BODY contient le code du bloc PL/SQL
38. Options de configuration PL/sql
• Certaines règles devront être mise en place et/ou
avancées pour donner aux développeurs des
opportunités de production, et de ce fait des
meilleures performances.
• Pour cela, la base de données devra prendre en
compte certaines procédure PL/SQL:
• - PLSQL_WARNING
• - PLSQL_DEBUG
• - PLSQL_OPTIMIZE_MODE
• - PLSQL_CODE_TYPE
39. Options de configuration PL/sql
• PL/SQL gestion des erreurs en Oracle 10g permet d’opter pour un code propre
sans bug et sans erreur. En général on rend DISABLE cette gestion en production.
ALTER SYSTEM SET plsql_warnings= ‘DISABLE :ALL’
SCOPE=BOTH ;
• PLSQL debug interprète en incluant les données de débug. En général on rend
DISABLE cette gestion en production.
ALTER SYSTEM SET plsql_debug=FALSE SCOPE=BOTH ;
PLSQL_OPTIMIZE_MODE introduit en 10g, pour l’activer :
ALTER SYSTEM SET plsql_optimize_mode=2 SCOPE=BOTH ;
Le paramètre PLSQL_CODE_TYPE définit si le compilateur PL/SQL
interprète le code où utilise le code natif machine
42. Sécurité de la base de
donnée
Administration de base de données
43. Plan
• Introduction
• Appliquer le principe du moindre privilège
• Désactiver l’authentification à distance par le système
• Implémenter les fonctionnalités standards de sécurité du mot de passe
• Vérification des mots de passe
• Les outils et options d’audit
• Affichage des résultats de l’audit
• Audit détaillé(FGA)
• Stratégie d’audit détaillé
• Mise à jour de sécurité
• Conclusion
45. Assurer la sécurité d’une BD c’est maintenir :
la confidentialité
l’intégrité
et la disponibilité des données.
Sécurisation d’une BD : objectifs
46. Objectif:
Protéger le dictionnaire de données
Révoquer les privilèges non nécessaires de PUBLIC
Limiter les répertoires accessibles par les utilisateurs
Limiter les utilisateurs dotés de privilèges d’administration
Limiter l’authentification à distance auprès de la base de données
Appliquer le Principe De moindre privilège
47. Protégez le dictionnaire de données en prenant soin d’affecter la valeur
FALSE au paramètre d’initialisation suivant :
07_DICTIONARY_ACCESSIBILITY=FALSE
Cette configuration empêche les utilisateurs dotés du privilège système ANY
TABLE d’accéder aux tables de base du dictionnaire de données.
La valeur FALSE empêche également l’utilisateur SYS de se connecter sous
un autre compte que SYSDBA.
Protéger le dictionnaire de donnée
48. Révoquer tous les privilèges et rôles non nécessaire du groupe d’utilisateurs
PUBLIC du serveur de base de données
De nombreux packages intégrés accordent le privilège EXECUTE à PUBLIC
Le privilège d’ exécution sur les packages suivants doit toujours être révoqué de
PUBLIC:
UTL_TCP
UTL_SMTP
UTL_HTTP
UTL_FILE
DBMS_OBFUSCATION et DBMS_CRYPTO
Révoquer les privilèges non nécessaires de PUBLIC
49. Les commandes sont les suivantes :
-REVOKE EXECUTE ON utl_tcp FROM PUBLIC;
-REVOKE EXECUTE ON utl_smtp FROM PUBLIC;
-REVOKE EXECUTE ON utl_http FROM PUBLIC;
-REVOKE EXECUTE ON utl_file FROM PUBLIC;
-REVOKE EXECUTE ON dbms_obfuscation FROM PUBLIC;
-REVOKE EXECUTE ON dbms_crypto FROM PUBLIC;
Exemple
50. UTL_FILE_DIR est le paramètre de configuration qui:
Désigne les répertoires disponibles pour les E/S de fichiers PL/SQL
Permet aux utilisateurs de la base de lire ou d’écrire dans ces répertoires,
sur le serveur de base de données
Limiter les répertoires du système d’exploitation
accessibles par l’utilisateur
51.
52.
53.
54.
55. Limite les types de privilège suivants:
Octroi des privilèges système et objet
Connexions dotées des privilèges SYS: SYSDBA et SYSOPER
Privilèges de type DBA, tels que DROP ANY TABLE
Permissions lors de l’exécution
Limiter les utilisateurs dotés de privilèges d’administration
56. Exemple: Répertorier tous les utilisateurs avec le rôle
DBA
• Pour déterminer les utilisateurs auxquels le privilège
SYSDBA ou SYSOPER a été accordé, on utilise
l’interrogation suivante :
57. Désactiver l’authentification à distance
par le système d’exploitation
• L’authentification à distance ne doit être utilisée que
lorsque vous faites confiance à tous les clients pour
authentifier de manière appropriés les utilisateurs
• Processus d’authentification à distance:
L’utilisateur de base de données est authentifié en externe
Le système distant authentifie l’utilisateur
L’utilisateur se connecte à la base de données sans authentification
complémentaire
Pour la désactiver, vérifier que la valeur par défaut est affectée
au paramètre d’initialisation d’instance suivant :
REMONTE_OS_AUTHENT =FALSE
58. Gérer les comptes utilisateur par défaut
• L’assistant DBCA provoque l’expiration et le verrouillage
de tous les comptes, à l’exception des suivants:
SYS
SYSTEM
SYSMAN
DBSNMP
Dans le cas d’une base de données crée manuellement,
vous devez procéder au verrouillage et à l’expiration de
tous les comptes non utilisés
60. Verrouillage des comptes suite à un mot de passe
erroné
FAILED_LOGIN_ATTEMPTS : Ce paramètre permet de
définir le nombre maximal de tentatives de
connexion.
PASSWORD_LOCK_TIME : Ce paramètre permettra de
définir la durée de verrouillage du compte utilisateur
après avoir bloqué le compte avec le paramètre
FAILED_LOGIN_ATTEMPTS
61. Expiration et durée de vie des mots de passe
PASSWORD_LIFE_TIME : Ce paramètre permet de
définir la durée d'utilisation du même mot de passe.
PASSWORD_GRACE_TIME :Ce paramètre permet de
définir en jours le temps de GRACE qui vous sera
alloué pour changer votre mot de passe après son
expiration.
62. Historique des mots de passe
PASSWORD_REUSE_TIME : Ce paramètre défini en
nombre de jours, permet de définir le délai entre deux
utilisations du même mot de passe.
PASSWORD_REUSE_MAX : Ce paramètre permet de
définir le nombre de fois de changements du mot de
passe requis avant réutilisation du mot de passe
actuel.
63. Vérification des mots de passe
Si les fonctions sont personnalisés , elles doivent utiliser la spécification suivante
pour déclarer les variables d’entrée :
Function_name ( userid_param IN VARCHAR2 , passwrd_param IN VARCHAR2,
old_passwrd_param IN VARCHAR2)
Return BOOLEAN
Les fonctions de vérification des mots de passe doivent :
Appartenir à l’utilisateur SYS.
Renvoyer une valeur booléenne.
64. Fonction de vérification de mots de passe
Il s’agit de la fonction « VERIFY_FUNCTION ».
Elle applique les restrictions suivantes:
i. La longueur minimale est de 4 caractères.
ii. Le mot de passe ne peut pas être identique au nom d’utilisateur.
iii. Le mot de passe doit comporter au moins un caractère alphabétique , un chiffre et
un caractère spécial.
iv. La différence entre le mot de passe et le précédent doit être d’au moins 3 lettres.
67. Surveiller les activités suspectes
La surveillance doit faire partie
intégrante des procédures de
sécurité.
L’administrateur peut auditer toutes
les actions qui ont eu lieu dans la
base de données.
L’audit doit être ciblé de telle sorte
que seuls les événements présentant
un intérêt soient capturés.
69. Les types d’Audit(1)
L’audit de base de données
standard
Capture plusieurs
informations sur un
événement audité: la
survenue de l’événement,
l’instant auquel il s’est
produit, l’utilisateur qu’il a
provoqué, ainsi que
l’ordinateur client que
l’utilisateur employait lors
de l’événement .
Il est activé via le
paramètre AUDIT_TRALL
71. Audit de base de données standard (Evénements audités)
Evénement
de
connexion
Utilisation
des
privilèges
système
Utilisation
des
privilèges
objet
Utilisation
d’instruction
SQL
72. Afficher les options d’audit
ALL_DEF_AUDIT_OPTS ALL_STMT_AUDIT_OPTS
ALL_PRIV_AUDIT_OPTS ALL_OBJ_AUDIT_OPTS
73. Afficher les résultats de l’audit
DBA_AUDIT_TRALL
DBA_AUDIT_EXISTS
DBA_AUDIT_OBJECT
DBA_AUDIT_SESSION
DBA_AUDIT_STATEMENT
Toutes les entées
de la trace d’audit
Enregistrements
concernant AUDIT
EXISTS/NOT EXISTS
Enregis. concernant
les objets de schéma
Toutes les entées de
connexion et
déconnexion
Enregis. D’audit des
instructions
74. Les types d’Audit(2)
L’audit basé sur les données
Audite les modifications
apportées aux données.
Il capture non seulement
la survenue de
l’événement audité, mais
également les valeurs
insérées, mises à jours ou
supprimées.
Il est implémenté par
l’intermédiaire de triggers
de base de données
75. Audit basé sur les données
» L’audit de base de données enregistre le fait que des opérations d’insertion,
de mise à jour ou de suppression ont été effectuées sur les objets audités,
mais il ne capture pas les valeurs proprement dites qui ont changé.
» L’audit basé sur les données étend l’audit de base de données en capturant
les valeurs modifiées.
» L’audit basé sur les données utilise des déclencheurs de base de données.
» Il a généralement un impact plus important que l’audit de base de données
standard sur les performances, car le code du déclencheur d’audit doit être
exécuté chaque fois que l’opération d’insertion, de mise à jour ou de
suppression a lieu.
» Le degré de dégradation dépend de l’efficacité du code du déclencheur.
78. Audit détaillé (FGA)
Surveille l’accès aux données en fonction
du contenu
Audite les opérations SELECT ou INSERT,
UPDATE,DELETE
Peut être lié à une table ou à une vue
Peut exécuter une procédure
Est administré via le package DBMS_FGA
79. L'audit détaillé (FGA)
• Les options d'audit détaillé peuvent être ciblées par colonnes
individuelles d'une table ou d'une vue et peuvent même être
conditionnelles
• Contrairement à l'audit basé sur les données l'audit détaillé ne
nécessite pas l'utilisation de déclencheurs de base de données
et son impact sur les performances est similaire à celui de l'audit
de base de données standard.
• L'administrateur utilise le package DBMS_FGA PL/SQL pour
créer une stratégie d'audit sur la table ou la vue cible.
81. Package DBMS_FGA
• Sous-programme
• description
Le package DBMS_FGA est l'outil d'administration des
fonctions d'audit détaillé.
Des privilèges d'exécution sur DBMS_FGA sont
nécessaires pour administrer les stratégies d'audit.
Etant donné que la trace d'audit détaillé peut contenir
des informations sensibles, les privilèges d'exécution
sur ce package doivent être réservés aux seuls
administrateurs.
82. Package DBMS_FGA
Sous programme Description
ADD_POLICY Crée une stratégie d’audit à l’aide du
prédicat fourni en tant que condition
d’audit
DROP_POLICY Supprime une stratégie d’audit
ENAB LE_POLICY Active une stratégie d’audit
DISABLE_POLICY Désactive une stratégie d’audit
83. Activer et désactiver une stratégie d’audit détaillé
• Désactiver une stratégie:
Dbms_fga.disable_policy(
object_schema =>’hr’,
object_name =>’employee’,
policy_name =>’audit_emps_salary’);
84. Activer et désactiver une stratégie d’audit détaillé
• activer une stratégie:
Dbms_fga.enable_policy(
object_schema =>’hr’,
object_name =>’employee’,
policy_name =>’audit_emps_salary’);
85. Supprimer une stratégie d’audit détaillé
• Supprimer une stratégie:
Dbms_fga.drop_policy(
object_schema =>’hr’,
object_name =>’employee’,
policy_name =>’audit_emps_salary’);
86. Déclencher des événements d’audit:
• Les instructions SQL
suivantes provoquent
un audit
SELECT Count(*)
FROM hr.employee
WHERE departement_id=10
And Salary>v_salary
SELECT Salary
FROM hr.employee
87. Déclencher des événements d’audit:
• L’ instruction SQL
suivante ne provoque
pas d’audit:
SELECT last_name
FROM hr.employee
WHERE departement_id=10 ;
88. VUES DE DICTIONNAIRE DE DONNÉES:
88
Nom de la vue Description
DBA_FGA_AUDIT_TRAIL Tous les événements d’audit détaillé
ALL_AUDIT_POLICIES Toutes les stratégies d’audit détaillé pour
les objets auxquels l’utilisateur actuel
peut accéder
DBA_AUDIT_POLICIES Toutes les stratégies d’audit détaillé dans
la base de données
USER_AUDIT_POLICIES Toutes les stratégies d’audit détaillé pour
les objets du schéma de l’utilisateur actuel
89. Règles relatives à l’audit détaillé:
Pour auditer toutes les instructions, utilisez une condition null.
89
Si vous tentez d’ajouter une stratégie qui existe déjà, l’erreur ORA-28101 est
générée.
La table ou la vue auditée doit déjà exister lorsque vous créez la stratégie.
Si la syntaxe de la condition d’audit n’est pas valide, une erreur ORA-28112
est générée lors de l’accès à l’objet audité.
Si la colonne d’audit n’existe pas dans la table, aucune ligne n’est auditée.
Si le gestionnaire d’événement n’existe pas, aucune erreur n’est renvoyés et
les enregistrements d’audit sont quand même crées.
90. Auditer les utilisateurs SYSDBA et SYSOPER:
Les utilisateurs dotés des privilèges SYSDBA ou SYSOPER peuvent se connecter
alors que la base de données est fermée.
90
La trace d’audit doit être stockée à l’extérieur de la base de données.
La connexion en tant que SYSDBA ou SYSOPER est toujours auditée.
Activer l’audit complémentaire des actions SYSDBA ou SYSOPER avec
audit_eye_opertaions.
Contrôlez l’emplacement de la trace d’audit avec audit_file_dest. l’emplacement
par défaut est le suivant:
Journal des événements (windows).
$ORACLE_BCME/rdbms/audit(UNIX/Linu).
91. Mises à jour de sécurité
Oracle publie les alertes de sécurité sur le web
Oracle Technology Network, à l’adresse suivante :
http://otn.oracle.com/deploy/security/alerts.htm
Les administrateurs de base de données et les
développeurs Oracle peuvent également s’abonner
afin d’ être informés par e-mail des alertes de
sécurité, en cliquant sur le lien « Subscribe to
Security Alerts Here ».
91
92. Récapitulation
• Appliquer le principe du moindre privilège
• Désactiver l’authentification à distance par le système
• Implémenter les fonctionnalités standards de sécurité du mot de passe
• Vérification des mots de passe
• Les outils et options d’audit
• Affichage des résultats de l’audit
• Audit détaillé(FGA)
• Stratégie d’audit détaillé
• Mise à jour de sécurité
La déclaration de la partie spécification d'un paquetage s'effectue avec l'instruction CREATE [OR REPLACE] PACKAGECelle de la partie corps avec l'instruction CREATE [OR REPLACE] PACKAGE BODY
La déclaration de la partie spécification d'un paquetage s'effectue avec l'instruction CREATE [OR REPLACE] PACKAGECelle de la partie corps avec l'instruction CREATE [OR REPLACE] PACKAGE BODY
Detailler les 2 exemples de package
La déclaration de la partie spécification d'un paquetage s'effectue avec l'instruction CREATE [OR REPLACE] PACKAGECelle de la partie corps avec l'instruction CREATE [OR REPLACE] PACKAGE BODY
BODY
BODY
Il est possible de désactiver un déclencheur avec la commande suivante
et de l'activer avec la commande suivante
De la même façon, on peut désactiver tous les déclencheurs définis sur une table
et de les activer avec la commande suivante
Detailler les 2 exemples de package
Detailler les 2 exemples de package
Introduire Les bases de données stockent des données extrêmement précieuses et
confidentielles. Un nombre croissant de conformités réglementaires oblige les
entreprises à auditer l'accès aux données sensibles et à les protéger contre les
attaques et les comportements malveillants. Ou bien
La Base de Données est le coeur de l'entreprise.
C’est là que résident les actifs immatériels qui sont la base de l'activité : données financières, informations client, fichiers RH ... La valeur de ces données en fait une cible évidente et une attaque peut impacter l'entreprise et dégrader son image, voire entraîner la responsabilité personnelle du responsable des traitements
Donner une petite definition sur la securité et l importance des data des entreprises !!
Les options d’audit selon les evemenment audités sui sont 4 afficher dipo suivant
L’audit basé sur les données ne doit être utilisé que lorsque les informations capturées par l’audit de base d edonnées standard est insuffisant
Les options d’audit selon les evemenment audités sui sont 4 afficher dipo suivant
L'audit détaillé (FGA) permet de capturer les informations sur l'instruction ayant provoqué une opération.
de sorte que les informations d'audit ne
soient capturées que si certaines conditions définies par l'administrateur sont réunies.
Mises à jour de sécurité
Les alertes de sécurité Oracle contiennent une brève description de la vulnérabilité, une
évaluation du risque et du degré d'exposition associés à la vulnérabilité, ainsi que les solutions
ou patches applicables. Oracle indique également la personne ou l'organisation nous ayant
informé de la vulnérabilité.
Les alertes de sécurité sont publiées sur le site Web Oracle Technology Network et sur
OracleMetaLink (MetaLink). Bien que les alertes de sécurité puissent être consultées
librement, seuls les clients disposant d'un numéro CSI (Customer Support Identification)
peuvent télécharger les patches.
Oracle apprécie votre coopération concernant la sécurité de ses produits et permet une
notification rapide, complète et confidentielle des vulnérabilités potentielles. Si vous
découvrez une telle vulnérabilité concernant un produit Oracle, merci de nous en informer en
soumettant une demande de service via MetaLink ou en envoyant un message électronique à
l'adresse secalert_us@oracle.com.