Zurück zu Utils

Snowflake stored procedure

GDPR Profiler

Scannen Sie ein Snowflake-Schema automatisch auf personenbezogene Daten über konfigurierbare Regex-Regeln — ohne jede Tabelle manuell zu durchsuchen.

Ziel

Zu wissen, welche Spalten personenbezogene Daten enthalten, ist der erste Schritt zur DSGVO-Compliance. Der GDPR Profiler erledigt diese Arbeit automatisch: Er verbindet den Systemkatalog mit einer Tabelle von Regex-Regeln, entnimmt Stichproben von Spaltenwerten und schreibt seine Ergebnisse — einschließlich Konfidenz-Score und empfohlener Maßnahme — in einen Ergebnissatz.

Die Erkennungsregeln sind vollständig konfigurierbar über PII_REGEX_RULES. Das Hinzufügen neuer PII-Kategorien bedeutet das Einfügen einer Zeile, keine Codeänderung.

Erforderliche Tabellen

PII_REGEX_RULES

Konfigurationstabelle mit Erkennungsmustern. Fügen Sie Zeilen hinzu, um neue PII-Kategorien zu unterstützen, ohne die Prozedur zu ändern.

PII_SCAN_RESULTS

Ergebnistabelle. Jeder Scan-Lauf schreibt seine Ergebnisse hier mit scan_id und Zeitstempel.

Funktionsweise

1

Kandidaten ermitteln

Die Prozedur verbindet information_schema.columns mit PII_REGEX_RULES und filtert direkt nach Datentyp. Nicht relevante Spalten werden bereits in SQL herausgefiltert.

2

Werte sampeln

Für jede Kandidatenspalte wird eine Stichprobe entnommen und die Werte werden gegen das value_regex-Muster geprüft. Das Übereinstimmungsverhältnis wird mit MATCH_THRESHOLD verglichen.

3

Ergebnisse speichern

Name- und Wert-Konfidenz werden addiert (max. 1.0) und zusammen mit dem Erkennungsgrund und der empfohlenen Maßnahme in PII_SCAN_RESULTS gespeichert.

Parameter

ParameterStandardBeschreibung
DATABASE_NAMEErforderlich. Zu scannende Datenbank.
SCHEMA_NAMEErforderlich. Zu scannendes Schema.
SAMPLE_ROWSErforderlich. Anzahl der pro Spalte entnommenen Stichprobenzeilen.
MATCH_THRESHOLD0.1Mindest-Verhältnis der übereinstimmenden Werte, um eine Spalte zu markieren (0–1).
UTILS_DATABASEcurrent databaseDatenbank, in der PII_REGEX_RULES und PII_SCAN_RESULTS gespeichert sind.
UTILS_SCHEMAcurrent schemaSchema, in dem die Utility-Tabellen gespeichert sind.

Verwendung

1. Basis-Scan

Scannen Sie ein ganzes Schema mit 1.000 Stichprobenzeilen pro Spalte:

CALL DATAMODDER_UTILS.PROFILE_PII(
    'MY_DATABASE',
    'MY_SCHEMA',
    1000
);

2. Empfindlichkeit anpassen

Senken Sie den Schwellenwert, um auch schwächere Signale zu erkennen (z. B. 5 % der Werte stimmen überein):

CALL DATAMODDER_UTILS.PROFILE_PII(
    'MY_DATABASE',
    'MY_SCHEMA',
    5000,
    0.05
);

3. Separate Utility-Lokation

Befinden sich Ihre Utility-Tabellen in einer anderen Datenbank oder einem anderen Schema? Übergeben Sie diese explizit:

CALL DATAMODDER_UTILS.PROFILE_PII(
    'MY_DATABASE',
    'MY_SCHEMA',
    1000,
    0.1,
    'UTILS_DB',
    'UTILS_SCHEMA'
);

4. Ergebnisse anzeigen

SELECT *
  FROM DATAMODDER_UTILS.PII_SCAN_RESULTS
 ORDER BY scanned_at DESC, confidence DESC;