jeudi, juillet 06, 2006

Découverte : Oracle Database Vault

Qu'est-ce qu'Oracle Database Vault ?
Il s'agit d'une option de la base de données Oracle qui permet de protéger les données des applications des accès potentiels des DBAs.
Un exemple simple pour mettre en évidence l'intérêt d'un tel outil : pourquoi le DBA aurait-il le droit de faire un SELECT sur la table des employés pour voir les salaires ?

1) Accès à la table EMPLOYEES (sans DB Vault)
La commande SLQ suivante est passée par un utilisateur ayant le droit DBA :
SELECT firts_name, last_name,salary FROM hr.employees;


Toutes les informations sensibles (ici le salaire) sont visibles par le DBA !
(Note : utilisation d'Oracle SQL Developer pour la démonstration)

2) Restriction des accès pour les DBAs
Via Oracle Database Vault, l'utilisateur DBVAULT peut restreindre les accès des DBAs.

Pour cela, il faut créer une règle de protection :


Maintenant l'accès n'est plus autorisé que pour les utilisateurs HR.

3) Accès à la table EMPLOYEES (avec DB Vault)

3.1 Visualisation des données
La visualiasation de la table hr.employees comme précédemment donne maintenant le résultat suivant :

Les données HR sont désormais protégées des accès DBAs !


3.2 Suppression de la table
Les commande de suppression de la table DROP table hr.employees; et de modification de structure ALTER TABLE hr.employees DROP (salary); provoquent les erreurs suivantes :


3.3 Création d'un utilisateur
Afin de préserver l'intégrité, le DBA ne peut plus créer d'utilisateurs
CREATE USER john IDENTIFIED BY no1_pw;

Note : Une viewlet de démonstration d'Oracle Database Vault est disponible sur OTN.