Files
Database/_UTIL/anonymize.sql
2019-11-27 16:49:59 +00:00

87 lines
3.3 KiB
SQL

/* Anonymizer for Facilitor P-ATO (reverse OTAP) chain
*
* $Revision$
* $Id$
*
* Gradually improve over time, please
*/
-- We draaien vaak vlak na een import, mooi moment om alles valid te maken
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
/
column afcltlogfile new_value afcltlogfile NOPRINT;
select 'ANONYMIZED_' || UPPER(USER || '_' || sys_context('USERENV', 'SERVICE_NAME') || '_' || sys_context('USERENV', 'SERVER_HOST')) || '_' || to_char(sysdate,'YYYYMMDD_HH24MISS') || '.lst' as afcltlogfile from dual;
spool &afcltlogfile
-- Destructive obstrufication of personal data.
UPDATE prs_perslid
SET prs_perslid_naam =
INITCAP (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_naam)))
WHERE prs_perslid_naam NOT LIKE 'INACTIEF:%'
AND prs_perslid_naam NOT LIKE 'Facilitor'
AND (prs_perslid_oslogin IS NULL OR SUBSTR(prs_perslid_oslogin, 1, 1) <> '_');
UPDATE prs_perslid
SET prs_perslid_voornaam =
INITCAP (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_voornaam)))
WHERE prs_perslid_voornaam IS NOT NULL
AND (prs_perslid_oslogin IS NULL OR SUBSTR(prs_perslid_oslogin, 1, 1) <> '_');
UPDATE prs_perslid
SET prs_perslid_voorletters =
UPPER (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_voorletters)))
WHERE prs_perslid_voorletters IS NOT NULL;
UPDATE prs_perslid
SET prs_perslid_naam =
'INACTIEF:'
|| INITCAP (
DBMS_RANDOM.string ('l', LENGTH (prs_perslid_naam) - 9))
WHERE prs_perslid_naam LIKE 'INACTIEF:%';
UPDATE prs_perslid SET prs_perslid_email='E'||TO_CHAR(prs_perslid_key)||'@facilitor.nl'
WHERE prs_perslid_email IS NOT NULL;
UPDATE prs_perslid SET prs_perslid_oslogin2='O'||TO_CHAR(prs_perslid_key)
WHERE prs_perslid_oslogin2 IS NOT NULL;
DELETE FROM fac_imp_perslid;
UPDATE prs_contactpersoon
SET prs_contactpersoon_naam = INITCAP (DBMS_RANDOM.string ('l', LENGTH(prs_contactpersoon_naam)));
UPDATE prs_contactpersoon
SET prs_contactpersoon_voornaam = INITCAP (DBMS_RANDOM.string ('l', LENGTH(prs_contactpersoon_voornaam)))
WHERE prs_contactpersoon_voornaam IS NOT NULL;
UPDATE prs_contactpersoon
SET prs_contactpersoon_voorletters = SUBSTR(prs_contactpersoon_voornaam,1,1)|| SUBSTR(prs_contactpersoon_voorletters,2)
WHERE prs_contactpersoon_voorletters IS NOT NULL;
UPDATE prs_contactpersoon SET prs_contactpersoon_email='anonymous@facilitor.nl'
WHERE prs_contactpersoon_email IS NOT NULL;
ALTER TRIGGER bez_t_bez_afspraak_B_IU DISABLE;
UPDATE bez_afspraak
SET bez_afspraak_gastheer = (SELECT SUBSTR(prs_perslid_naam_full,1,50) FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key=bez_afspraak_host_key)
WHERE bez_afspraak_host_key IS NOT NULL;
UPDATE bez_afspraak
SET bez_afspraak_gastheer = INITCAP (DBMS_RANDOM.string ('l', LENGTH (bez_afspraak_gastheer)))
WHERE bez_afspraak_host_key IS NULL;
ALTER TRIGGER bez_t_bez_afspraak_B_IU ENABLE;
UPDATE bez_bezoekers
SET bez_afspraak_naam = UPPER(SUBSTR(bez_afspraak_naam,1,1))||'. Bezoeker'
WHERE bez_afspraak_naam IS NOT NULL
AND bez_afspraak_naam <> 'Anoniem';
UPDATE bez_bezoekers
SET bez_afspraak_bedrijf = UPPER(SUBSTR(bez_afspraak_bedrijf,1,1))||'areon B.V.'
WHERE bez_afspraak_bedrijf IS NOT NULL
AND bez_afspraak_bedrijf <> 'Anoniem';
BEGIN adm.systrackscriptid('$Id$'); END;
/
exit
SPOOL OFF