Zurück zu Utils

dbt macro

Masking

Schützen Sie personenbezogene Daten in Snowflake automatisch auf Spaltenebene, ohne die Quelldaten zu ändern.

Ziel

Tag-basiertes Masking ist die Snowflake-native Methode zum Schutz personenbezogener Daten gemäß DSGVO. Spalten mit einem PII-Tag werden bei Abfragen von Rollen ohne Zugang automatisch maskiert. Die zugrunde liegenden Daten bleiben unverändert; nur die Anzeige unterscheidet sich je nach Rolle.

Hinweis: Tag-basiertes Masking ist nur in der Snowflake Enterprise Edition oder höher verfügbar.

Was Sie erwarten können

Das Setup erstellt sechs Tag-Typen im datamodder Schema, jeder mit einer passenden Maskierungsrichtlinie. Standardmäßig sieht nur SYSADMIN die echten Werte; dies ist konfigurierbar.

TagBeispielMaskiert
pii_nameMax Mustermann*** *******
pii_emailmax@example.com*****@*****.***
pii_phone+49151234567+***********
pii_addressHauptstraße 1***** *
pii_date1985-04-12****-**-**
piiFreier Text*****

Verwendung

1. Einmalige Einrichtung ausführen

Führen Sie zuerst setup.sql als accountadmin aus, dann create_masking_setup:

{{ create_masking_setup() }}

Das Makro ist idempotent (sicher, mehrmals auszuführen, verwendet IF NOT EXISTS).

2. Tag auf eine Spalte anwenden

Verwenden Sie apply_masking_tag um einen Tag an eine Spalte zu hängen:

{{ apply_masking_tag(
    database = 'MY_DB',
    schema   = 'MY_SCHEMA',
    table    = 'CUSTOMERS',
    column   = 'EMAIL',
    tag      = 'pii_email'
) }}

3. Zugriffsrolle anpassen (optional)

Legen Sie fest, welche Rolle unmaskierte Daten sehen darf, über Projektvariablen:

vars:
  masking_config:
    unmasked_role: SYSADMIN