Introduction
Encore une fois, je vais commencer par une question pour vous les DBAs qui consultent cet article.
Est-ce que vos bases de développement et de pré-production ont des données représentatives de la production ? En terme de volumétrie et de format ? A part si vous êtes une entreprise modèle, la réponse est souvent non.
Deuxième question, est-ce que vous avez, dans vos bases de développement et de pré-production, des données à ne pas mettre dans toutes les mains ? Adresses, vrais noms, hash de mot de passe de vrais utilisateurs etc… ? Oui ? C’est parfaitement banal malheureusement… Y a t’il une alternative à ça ? Hé oui messieurs et mesdames : le data masking !
En quoi consiste le Data Masking ?
Le data masking est le terme général pour décrire l’altération de données pour les anonymiser tout en gardant une cohérence dans ces dernières :
- Respect du format original
- Respect des valeurs liés : clés étrangères par exemple
- Respect des valeurs corrélées : Ville, code postale, Pays etc…
Cela permet donc d’avoir des données non-critiques dans votre environnement de développement ou de pré-production mais en ayant quand même une volumétrie et un formatage représentatifs de votre production pour faire des tests de performance. Fini, les lancements en production catastrophiques où votre nouvelle application consomme énormément de ressources et ralentie tous vos serveurs !
Comment ça marche ?
Tout d’abord, vous devez identifier de votre côté les colonnes de données sensibles à masquer. Une fois ceci fait, vous devez définir les formats de ces colonnes à respecter. Plusieurs formats sont déjà préenregistrés par Oracle :
- Numéro de carte crédit MasterCard, Visa, American Express
- Numéro d’assurance sociale
- Etc…
Vous pouvez bien sûr enregistrer vos propres formats de données et les réutilisez dans vos définitions de masquages.
Une fois ceci fait, il ne manque plus qu’à créer votre définition de masquage. Lorsque vous avez fait votre définition de masquage, Oracle Data Masking vous générera un script SQL que vous pourrez intégrer à vos traitements d’export / import de données.
Voici un petit exemple qui vous montre comment faire ses premiers pas sur Oracle Data Masking : http://apex.oracle.com/pls/apex/f?p=44785:24:3724765812560989::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:4627,29
Comment se présente le logiciel ?
Le logiciel est un module d’Entreprise Manager. Installé par défaut dans Oracle Database 11G, il faudra par contre installer un patch 10.2.0.5 pour l’avoir en 10G.
Data Masking est accessible dans l’onglet Schema de Database Control avec deux liens :
- Definitions : vos traitements de masking
- Format Library : Les formats pré-enregistrés de données à générées (Carte bancaire, NAS etc…)
L’interface est très simple et très intuitive. Vous pouvez naviguer tranquillement dedans sans de tutoriaux spéciaux.
Quelques questions qui vous trottent dans la tête.
Est-ce gratuit ?
Non, sûrement pas. Même si il est installé par défaut, ce logiciel fait parti du Oracle Data Masking Pack et est bien sûr payant.
Y a t’il des nouveautés en version 12C ?
Enterprise Manager 12C a été dévoilé lors de l’Oracle OpenWorld avec son lot de nouveautés dont certaines concernant Oracle Database Security. Pour Oracle Data Masking, Oracle 12C se dote d’un « Découvreur de données sensibles ». Ce dernier permet via des pattern enregistrés de détecter automatiquement les colonnes sensibles à masquer : Carte de crédit, adresses, numéro d’employés etc…
Data masking est-il compatible avec d’autres bases de données ?
Oracle annonce que le Data Masking Pack est compatible avec SQL Server et IBM DB2 avec un bémol ! Il faudra passer par Oracle Database Gateways pour assurer cette compatibilité.
Si vous avez d’autres questions, n’hésitez pas à les poser dans les commentaires. Je les ajouterai à mon article.

