Beveiliging in Power BI (desktop)
Lees ook: 3 nieuwe gereedschappen in Excel
Beveiliging is hot. Zo is er sinds kort een Europese wetgeving (AVG/GDPR), die de bescherming van persoonsgegevens regelt. Daarmee worden organisaties gedwongen om strikte procedures aan te houden als het gaat om bescherming van de privacy. Eigenlijk is dit soort wetgeving oude wijn in nieuwe zakken, want beveiliging binnen bedrijven is altijd al een behoorlijk punt van aandacht geweest. En zeker waar het trade secrets betreft, wordt rustig en lustig digitale ijzeren gordijnen en digitale muren gebouwd.
Excel is wat betreft beveiliging niet het meest geschikte gereedschap. Zij werkt met personal documenten en dat betekent dat iedereen die een Excel model opent alles ziet. Een andere reden waarom beveiliging in Excel moeilijk is, komt voort uit de methode hoe Excel werkt. Excel is een rekenprogramma. Power BI is ontworpen als een filter programma. Omdat beveiliging ook gebaseerd is op filter functionaliteiten, heeft Power BI op dit vlak een duidelijke voorsprong.
Wil je dat om het even welke beveiliging werkt, dan moet je gestructureerde modellen bouwen. En kijk, in Power Pivot, zowel in Excel als in Power BI, is dit proces ingebakken. Dat is niet gek omdat beide programma’s werken met dezelfde engine en dus dezelfde look and feel bezitten. Het grote verschil tussen Excel en Power BI is dat je met het laatste programma dashboards publiceert. In PowerBI.com is de login het e-mailadres van de gebruiker. En daarmee is de beveiliging op een heel berekende, maar ook filterende manier te implementeren.
Het verschil met de concurrenten, zoals QlikView en Tableau, is dat in Power BI de gebruiker effectief de beveiliging kan instellen. Dat is een nieuw element, want beveiliging is traditioneel de taak van gespecialiseerde werknemers. Daarmee is beveiliging op een bepaald (hoog) niveau in de organisatie geregeld en dat is maar goed ook. Natuurlijk mag en kan het niet zo zijn dat de beveiliging van sleutel KPI’s door gebruikers wordt beheerd. Maar aan de andere kant is het wel zo dat een salesmanager zijn dashboard op basis van eigen gemaakte beveiligingsets kan delen. En daarmee creëer je modellen, die zich aanpassen aan de status van de gebruiker. En als je een single point of truth nastreeft is dat altijd een stuk beter dan bijvoorbeeld 10 aparte dashboards.
Beveiliging in Power BI gebeurt op basis van filtering. In afbeelding 1 zie je een relatieschema in Power BI desktop. Het betreft hier een fSales database, die is gerelateerd aan een dimensietabel dCustomersCountries en die is vervolgens gekoppeld aan de tabel dEmployees, waarin de kolom EmpNr het employee nummer bevat.
In Power BI, tabblad Modeling, sectie Security (afbeelding 2) gebruik je de knoppen om rollen te maken en beheren, of om te testen hoe jouw rolverdeling werkt. Onder de eerste knop maak je de (filter) DAX berekening, die je maakt op de aanwezige tabellen. Best practice is dat je voor dimensie tabellen kiest. Op basis van ingestelde relaties, worden vervolgens de feiten tabel gefilterd. Je hebt de mogelijkheid om per tabel één DAX berekening te gebruiken.
Iedere beveiligingsformule werkt als de Logische_test van de ALS functie in Excel. Kijk maar naar het voorbeeld in afbeelding 3. We hebben een rol Medewerker gemaakt. De gebruikte DAX is op de tabel dEmployees is dEmployees[EmpNr] = 10216. We gebruiken hier het employee nummer (van Britta Hill), maar een (andere) DAX functie op een andere kolom binnen de tabel is natuurlijk ook mogelijk. Nu kiezen we ervoor om de rol te activeren. In afbeelding 4 zie je het gevolg hiervan op de tabel dEmployees. Alle gerelateerde tabellen worden op basis van deze filtering aangepast. In afbeelding 5 en 6 zie je de verschillen tussen het niet beveiligde en het beveiligde dashboard.
Dit is een simpel voorbeeld. Ga je deze functionaliteit gebruiken met bijvoorbeeld de PATH DAX functies, dan werk je met een hiërarchie, binnen de gedefinieerde business rules. Die rules worden gefilterd op basis van value based security berekeningen.
Dit voorbeeld werkt natuurlijk wel, maar in de cloud wil je dat Power BI zelf bepaald wie iemand is. Dat doe je met de DAX USERPRINCIPALNAME(). Die geeft de inlognaam van de gebruiker weer. Het leuke van deze DAX is dat hij eveneens in Power Pivot in Excel bestaat (Afbeelding 7). En daarmee zie je dat de cirkel weer rond is. Nu maar wachten wanneer dit soort beveiliging ook in Excel wordt opgenomen.
Henk Vlootman geeft sinds 1994 Excel en Power BI trainingen aan managers over de gehele wereld. Vanaf 2013 ontving Henk jaarlijks de Microsoft MVP (Most Valuable Professional) award. In 2016 werd de MVP award voor de gebieden Excel en Data platform toegekend. Die laatste erkenning kreeg hij vanwege zijn werk met de Power BI gereedschappen. Henk is de auteur van “Excelmodellen voor financiële economische informatie” en “ExcelLeren, de Vlootman methode in de praktijk” en medeauteur van het “Praktijkboek Powerpivot in Excel” en “Handboek Power pivot”. Tijdens Excel en Power BI congressen en conferenties is hij een gewaardeerd spreker. Henk is voorzitter van de stichting Power BI gebruikersgroep Nederland.