J'aimerais pouvoir vous faire voter 100 points juste pour y penser! J'ai vu ce sujet tellement souvent négligé que c'était faux, tellement bien fait. D'après ce que j'ai compris, vous voulez réellement brouiller les données dans les champs eux-mêmes. Bien que je comprenne ce que vous essayez de réaliser, il n'est peut-être pas nécessaire de le faire - même si cela devrait être examiné au cas par cas.
La plupart des lois sur la protection des données tournent autour de la possibilité d'associer correctement une donnée à un individu, par exemple une date de naissance ou un numéro de téléphone. Vous pouvez répondre aux exigences de la loi en veillant à ce que vos données hors de la production au format UAT soient mélangées de manière à ce qu'elles ne soient pas facilement reconfigurées à la personne d'origine - en particulier lorsque vous mélangez des prénoms et des noms.
Toutefois, cela ne règle pas le problème, par exemple, des informations de contact. Vous pouvez répondre aux exigences de la loi en mélangeant les données, mais les numéros de téléphone sont toujours réels, les courriels toujours, etc. Ils ne sont tout simplement pas attribués à la bonne personne. Pour cette raison, je recommande que, dans la mesure du possible, efface ces données avant de les transmettre à UAT, Red Gate utilise un logiciel appelé Data Generator, qui peut créer des données de test aléatoires pour vous permettre de remplir à nouveau les champs avec des données sur lesquelles des tests peuvent être effectués.
En ce qui concerne le brouillage des données: il existe de nombreuses applications qui le font pour vous et honnêtement, vous avez raison de ne pas vouloir réinventer la roue. Celui que nous utilisons dans notre société est un produit appelé Data Masker par une société appelée Net2000. La licence est très bon marché, elle fonctionne extrêmement rapidement et vous n'avez pas à vous soucier de désactiver toutes vos contraintes avant de brouiller la base de données.
Vous pouvez bien sûr utiliser votre propre solution si vous ne trouvez rien qui réponde à vos exigences. Si vous décidez de le faire, je vous recommande fortement d'utiliser des procédures CLR pour le faire, car il est beaucoup plus flexible que TSQL pur (pour ne pas dire que vous ne peut pas utiliser TSQL voir ici ).
Une fois que vous avez choisi une application pour effectuer ceci pour vous, la prochaine chose que vous devez décider est ce que vous voulez / devez réellement brouiller? Honnêtement, votre meilleure ressource à cet égard est l’équipe juridique de votre entreprise et / ou ses auditeurs. Je sais que parfois nous n'aimons pas travailler avec eux, mais ils vous seront beaucoup plus agréables de les avoir approchés et de leur avoir posé la question plutôt que d'essayer de le faire vous-même et de vous tromper, il n'y a absolument rien de mal à demander de l'aide - surtout quand c'est aussi important que ça.
J'espère que cela vous aide et je vous souhaite bonne chance dans votre quête ... ;-)
M. Brownstone a mis le doigt sur la tête. Maintenant, pour vous aider un peu, voici ma fonction "garble", utilisée pour obscurcir les chaînes (résultats amusants avec des noms!). Passer dans une chaîne, il retourne une chaîne tronquée. Incluez-le dans les instructions de mise à jour sur les colonnes de chaîne. Changez la longueur des données comme bon vous semble.
la source
Je devais le faire pour les données de vente au détail de mes clients. Pour les noms, je suis allé au recensement et j'ai téléchargé tous les prénoms et noms, je les ai parcourus en boucle pour les joindre tous les premiers, ajouté un code de sexe et les ai chargés dans un tableau en majuscules. J'ai ensuite eu une table avec environ 400 millions de noms uniques. J'ai utilisé les majuscules, car nos données actuelles n'étaient pas en majuscules, ce qui m'a permis de déterminer plus facilement les données effacées.
Quand j'ai effacé mes données d'utilisateur, j'ai échangé les noms. Pour mon anniversaire, je mettais tout le monde au 1er janvier de l'année de leur naissance et mettais à jour tous les numéros de téléphone avec leur code postal (mes données étaient américaines seulement). Les adresses électroniques sont devenues des initiales plus le nom de famille @ monentreprise.co. L’adresse postale me causa le plus de chagrin mais j’ai gardé la ville, l’état et le code postal, car j’estime qu’ils ne poseraient pas problème si l’adresse est modifiée. J'ai eu un collègue qui avait un programme qui a généré des lettres brouillées et mis à jour la ligne d'adresse avec cela.
Partout où j’avais des données en double, mais toujours un FK pour l’utilisateur principal (mauvaise conception oui, mais pas la mienne), j’ai mis à jour ces données aussi afin que le nom soit cohérent dans la base de données pour l’utilisateur x.
Globalement, mes données étaient encore très lisibles bien que l’adresse n’ait aucun sens. Cela m'a pris quelques jours pour que tout cela fonctionne, mais une fois que cela a été fait et qu'un travail d'agent SQL a été créé, je pouvais effacer les données en aussi peu que 15 minutes.
la source
Pour masquer un seul champ, pourquoi ne pas utiliser la fonction HASHBYTES (en SQL 2008+)? Vous pouvez choisir votre algorithme (MD5 est probablement suffisant) à condition de saler vos données. Donc, au lieu de simplement
SELECT HASHBYTES('SHA2_256', <LAST NAME FIELD>)
vous en assurer, vousSELECT HASHBYTES('SHA2_256', <LAST NAME FIELD> + '<my salt string>')
avez maintenant un hash qui ne peut pas être facilement forcé.C'est une fonction réelle supportable, reproductible et probablement beaucoup plus rapide. Selon le degré de sécurité requis par rapport à l’obfuscation, vous pouvez également utiliser un hachage plus faible et plus rapide.
la source
MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
quelque chose pour tout le monde !! (y compris, oui, ceux que vous ne devriez pas utiliser). Alors, disons que nous utilisons SHA2_512 ... avez-vous des problèmes avec cette approche?Jetez un coup d’œil au module dbatools PowerShell pour une option gratuite sur le masquage de données statiques, écrit par Chrissy Lemaire (@ chrissy-lemaire) et son équipe. Tous leurs outils sont excellents, alors je suis sûr que cela en vaut la peine.
Les deux commandes à rechercher dans dbatools sont: New-DbaDbMaskingConfig Invoke-DbaDbDataMasking
Jetez un coup d'œil à l'article de blog qui annonce cela: le masquage automatisé des données
la source