[OracleSQL] Anonimiseren database *

Pagina: 1
Acties:
  • 617 views sinds 30-01-2008
  • Reageer

  • elKnurrie
  • Registratie: Maart 2005
  • Laatst online: 01-12 11:03
Voor mijn stage opdracht zijn we bezig met oracle datawarehouse builder.
Echter komt de database die wij gebruiken van een "echt" bedrijf. Deze kunnen we dus straks niet zomaar gebruiken omdat er persoonsgegevens instaan.
Mijn vraag is dus: Zouden jullie (of iemand) me op weg kunnnen helpen voor het anonimiseren van de database? Hiermee bedoel ik het doorelkaar hussellen van bijvoorbeeld de voor en achter namen.

Ik heb nog niet veel ervaring met sql, dus ik zie nog niet helemaal in hoe dit aan te pakken, alle info is dus welkom. In de link hieronder heb ik een erd schema bijgevoegd

http://www.dot2004.nl/jurjen/erdstar.pdf

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Zo te zien zijn al je foreign keys op id basis, dus het gaat alleen om het update van de namen etc.
Ik zou gewoon zoiets doen:
update tabel set naam = 'Naam '||to_char(rownum)

Who is John Galt?


  • KopjeThee
  • Registratie: Maart 2005
  • Niet online
Misschien voor de zekerheid ook de kentekens op een soortgelijke manier als de namen aanpakken.

Ik denk dat er twee dingen zijn die je misschien in de gaten wilt houden:
- Wanneer is iets anoniem? Uit de wet bescherming persoonsgegevens kan je halen dat een "persoonsgegeven" een gegeven is dat herleidbaar is tot een natuurlijk persoon. Anoniem betekent dan (lijkt mij) "niet herleidbaar tot een natuurlijk persoon".
- Om bepaalde tellingen nog goed te laten gaan wil je misschien dat de vervangingen die je doet wel 1-op-1 zijn. Als een tabel oorspronkelijk allemaal verschillende namen bevatte, dan wil je niet dat iedereen opeens Jan Janssen heet. Omgekeerd, als iedereen Jan Janssen heette, dan wil je niet dat ze opeens allemaal een verschillende naam krijgen.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Een andere optie: hash functie loslaten op de naam.
Heb je iig voldaan aan punt 2 van KopjeThee.

Today's subliminal thought is:


  • elKnurrie
  • Registratie: Maart 2005
  • Laatst online: 01-12 11:03
Hmmm ok, het is dus de bedoeling dat bij voorbeeld zou ik 2 namen hebben Jan Jansen en Henk de Vries, dat dit dan wordt Jan de Vries en Henk Jansen.

Verder had ik ook het idee om in plaats van de kentekens de type/merk autos te wissellen. Maar dan wel zodat ze bij de goede brandstof blijven. ( Dit ivbm met de tabel tankingen die anders niet meer klopt).

Bedankt voor de reacties in ieder geval, ik zal alles in acht nemen. Ik had bedacht door misschien doormiddel van de shuffle functie met php te doen en dat weer terug zetten in de db. Of is dit nou heel stom gedacht?

  • Ravefiend
  • Registratie: September 2002
  • Laatst online: 10:57

Ravefiend

Carpe diem!

offtopic ... I'm seeing a Purple Tentacle!!! _O- .. another DoTT-fan :+

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ravefiend schreef op dinsdag 27 februari 2007 @ 12:05:
[...]

offtopic ... I'm seeing a Purple Tentacle!!! _O- .. another DoTT-fan :+
offtopic:
Had dat niet in een DM gekund? ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

jurjendt schreef op dinsdag 27 februari 2007 @ 11:58:
Hmmm ok, het is dus de bedoeling dat bij voorbeeld zou ik 2 namen hebben Jan Jansen en Henk de Vries, dat dit dan wordt Jan de Vries en Henk Jansen.

Verder had ik ook het idee om in plaats van de kentekens de type/merk autos te wissellen. Maar dan wel zodat ze bij de goede brandstof blijven. ( Dit ivbm met de tabel tankingen die anders niet meer klopt).

Bedankt voor de reacties in ieder geval, ik zal alles in acht nemen. Ik had bedacht door misschien doormiddel van de shuffle functie met php te doen en dat weer terug zetten in de db. Of is dit nou heel stom gedacht?
Kan je niet beter alle namen compleet anoniem maken?

Dus bv.
UPDATE tabel set NAAM='NAAM ' + COUNTER++ where NAAM= 'HENK JANSEN'
UPDATE tabel set NAAM='NAAM ' + COUNTER++ where NAAM= 'JAN PIETERSEN'

Aangezien je toch al van plan bent een klein script er voor te schrijven is dat niet echt heel complex.

Wat je ook zou kunnen doen
UPDATE tabel set NAAM =DBMS_CRYPTO.Hash (UTL_I18N.STRING_TO_RAW (NAAM, 'AL32UTF8'), 2)

2 for MD5, 1 For MD4, 3 for SH1
http://oraclelon1.oracle....0802/d_crypto.htm#1005074

Programmer - an organism that turns coffee into software.


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Als je echt wilt shufflen dan heb je PL/SQL nodig.
Je kunt bijvoorbeeld alle namen gesorteerd op dbms_random.value leeglezen in een collection en vervolgens met een cursor icm. een update where current of deze random gesorteerde namen weer in je tabel zetten.

Who is John Galt?


  • elKnurrie
  • Registratie: Maart 2005
  • Laatst online: 01-12 11:03
Super bedankt voor jullie tips, ik ga kijken welke methode we gaan gebruiken. Vooral het laatste van justmental lijkt mij het simpelste voor het shuffelen van de namen in ieder geval.

Probleem is dat mn stagebegeleider op vakantie is die moet er ook nog mee akkoord gaan (leraren en vakantie he), dus het duurt nog wel even :)

Ik laat nog wel horen wat we hebben gedaan uiteindelijk!

  • zorne
  • Registratie: Augustus 2002
  • Laatst online: 29-11-2021
Hier vind je hulp bij functies die je kan gebruiken:

www.techonthenet.com

grts
Pagina: 1