This post is also available in:
Aufrufe: 10068
Werte verschlüsseln – habt Ihr Daten in euren Datensets, welche Ihr verschlüsseln müsst? Hier zeige ich Euch, wie eine Verschlüsselung in Power BI mittels Power Query Funktionen umgesetzt werden kann.
Willst du Power BI lernen?
Auf unseren neuen Seite Power BI Coach haben wir einen Onlinekurs zusammengestellt.
Anwendungsfälle
Typische Anwendungsfälle für Verschlüsselungen sind unter anderem Kreditkartennummern, Sozialversicherungsnummern oder auch Kontonummern.
Diese werden unter Umständen für Auswertungen benötigt, sollen aber nicht in Klartext sichtbar sein. Hier bietet sich eine ganze oder auch eine partielle Verschlüsslung an.
Werte verschlüsseln in Power BI
Power BI respektive Power Query kennt keine Funktion, welche Werte «out of the box» verschlüsseln kann. Aber durch geschicktes Kombinieren von «Binary» Funktionen kann das Ziel trotzdem erreicht werden.
Hierzu wird als erstes der zu verschlüsselnde Wert in einen binären Wert umgewandelt, danach komprimiert, in eine Liste umgewandelt und zum Schluss wieder in einen Text zurückgewandelt. Tönt komplizierter als es ist.
Schauen wir uns diese Dummy-Kreditkartennummer an:
5105 1051 0510 5100
Diese wollen wir so verschlüsseln, dass ein Reportbenutzer keinen Rückschluss auf die Nummer machen kann. Das Resultat wird wie folgt aussehen:
1f8b08000000000004000b48cb2c2e492d0200be8fc57807000000
Schritt für Schritt
Aus Ausgangsbasis dient uns diese kleine Tabelle:

Als erstes muss das Feld «CreditCard Number» in einen binären Wert auf einer 64Bit Basis umgewandelt werden. Dies erreichen wir mit der ersten Funktion «Text.ToBinary» und dem Parameter «BinaryEncoding.Base64».

Das Resultat ist eine binäre Datei, die wir nun in das Format GZip umwandeln mit der Funktion «Binary.Compress», welche vor die vorstehende Funktion gesetzt wird.

Wiederum haben wir einen binären, nun aber komprimierten, Wert erhalten. Dieser wird wieder zu Text zurück verwandelt mit «Binary.ToText».

Das Resultat sieht wie folgt aus, entspricht aber noch nicht dem gewünschten Wert: H4sIAAAAAAAEADM1NDBVAGJDBSA2UABiAwD0UmZfEwAAAA==
Was fehlt, ist die Umwandlung des Wertes nach der Kompression in eine Liste.
Daher löschen wir den letzten Schritt und verwenden stattdessen «Binary.ToList«.

Die Liste setzen wir wieder mit «Binary.FromList» zusammen.

Zu guter Letzt verwenden wir doch noch «Binary.ToText», diesmal mit dem Parameter «BinaryEncoding.Hex».

Und schon haben wir das gewünschte Resultat.

Und hier noch die einzelnen Werte:

Wie Ihr sehen könnt, wurden sämtliche Werte in der Spalte «CreditCard Number» verschlüsselt.
Partielle Verschlüsselung
Es ist auch möglich, mit den üblichen Textfunktionen nur Teile eines Wertes zu verschlüsseln. In diesem Beispiel werden nur die letzten acht Ziffern verschlüsselt, die restlichen Ziffern erscheinen nach wie vor in Klarschrift.


Verschlüsselung ganzer Zeilen
Auch ganze Zeilen können verschlüsselt werden. Dazu wird die Anweisung in eine benutzerdefinierte Funktion umgewandelt.

Die Funktion namens «fn_Hashing» kann danach verwendet werden, indem wir die Werte der ganzen Zeile kombinieren.


Die Datei mit dem Beispielcode findet ihr hier.
Fazit
Werte in Power BI zu verschlüsseln ist mit ein wenig Kenntnisse über Power Query sowie der Sprache «M» einfach zu realisieren. Welche anderen Lösungen kennt Ihr, um Werte in Power BI zu verschlüsseln? Lasst uns an euren Erfahrungen im Kommentar teilhaben.
Mehr über Power BI könnt ihr hier nachlesen.
Happy Querying!