Row-Level Security instellen in Power BI
Je stelt Row-Level Security in via het tabblad Modellering in Power BI Desktop. Maak een rol aan, schrijf een DAX-filter op de relevante tabel en test de rol met 'Weergeven als rol'. Na publicatie naar Power BI Service wijs je de rol toe aan de juiste gebruikers of groepen. Dynamische RLS met USERPRINCIPALNAME() schaalt beter dan statische rollen.
Stap voor stap een RLS-rol aanmaken in Power BI Desktop, testen en publiceren naar de Service, inclusief dynamische beveiliging met USERNAME().
Voorbereiding: datamodel op orde
Voordat je RLS instelt, is het belangrijk dat je datamodel klopt. De DAX-filter die je aan een rol koppelt, werkt door via de relaties in je model. Als een regio-filter niet doorwerkt naar de feitentabel, heeft je RLS geen effect. Controleer eerst of de relaties in je Power BI-model correct zijn ingesteld en of de filterrichting de goede kant op staat. Voor dynamische RLS heb je ook een beheertabel nodig: een tabel met twee kolommen, het e-mailadres van de gebruiker en het segment waartoe hij toegang heeft.
Statische RLS: één rol per segment
De eenvoudigste vorm van RLS werkt met vaste filters per rol. Je maakt een rol ‘Regio Noord’ aan en filtert de tabel Regio zodat alleen de rij met waarde “Noord” zichtbaar is. Dat is in twee minuten gedaan. Het nadeel: bij tien regio’s maak je tien rollen en bij elke nieuwe regio moet je een nieuwe rol aanmaken en publiceren. Statische RLS is prima voor stabiele segmenten die zelden veranderen.
Dynamische RLS: schaalt zonder extra rollen
Bij dynamische RLS gebruik je de DAX-functie USERPRINCIPALNAME() in je filter. Die functie geeft het e-mailadres terug van de gebruiker die het rapport opent. Je vergelijkt dat adres met een kolom in je beheertabel: [Email] = USERPRINCIPALNAME(). Zo heb je maar één rol nodig, ongeacht hoeveel gebruikers je hebt. Het beheer verplaatst zich van het Power BI-bestand naar de beheertabel in je datamodel. Dat is een groot voordeel: je hoeft het rapport niet opnieuw te publiceren als iemand van afdeling wisselt.
Testen voordat je publiceert
Power BI Desktop heeft een ingebouwde testfunctie voor RLS. Via het tabblad Modellering kies je ‘Weergeven als rollen’ en selecteer je de rol die je wilt controleren. Je ziet dan exact dezelfde data als een gebruiker met die rol. Controleer altijd meerdere scenario’s: de happy path (gebruiker ziet zijn eigen data), een rand-geval (wat als een gebruiker niet in de beheertabel staat) en of kruisfiltering via gerelateerde tabellen correct werkt.
Publiceren en rollen toewijzen
Na publicatie naar Power BI Service staan de rollen klaar in de dataset, maar ze zijn nog niet toegewezen aan gebruikers. Ga naar de dataset-instellingen en kies ‘Beveiliging’. Hier voeg je per rol de e-mailadressen of Microsoft 365-groepen toe. Gebruik groepen waar mogelijk: dat maakt het beheer eenvoudiger dan individuele adressen. Na opslaan is de beveiliging direct actief voor iedereen die het gepubliceerde Power BI-rapport opent.
Onze tip: Voeg een foutafvangstlaag toe in je dynamische RLS. Als een gebruiker niet in je beheertabel staat, ziet hij standaard alle data of juist niets, afhankelijk van je filter. Voeg een rij toe met een leeg e-mailadres als catch-all die geen data retourneert, zodat onbekende gebruikers altijd een leeg rapport zien in plaats van een foutmelding.
Veelgestelde vragen
Hoe test ik een RLS-rol in Power BI Desktop?
Ga naar het tabblad Modellering en klik op 'Weergeven als rollen'. Kies de rol die je wilt testen. Power BI schakelt dan naar de datafilterperspectief van die rol en je ziet precies wat een gebruiker met die rol te zien krijgt. Je ziet ook een gele balk bovenaan het rapport om aan te geven dat je in testmodus zit. Vergeet niet de testmodus te verlaten voordat je het bestand opslaat.
Hoe wijs ik een RLS-rol toe aan gebruikers in Power BI Service?
Ga naar de dataset in Power BI Service, klik op de drie puntjes naast de dataset en kies 'Beveiliging'. Je ziet een overzicht van alle rollen die je in Desktop hebt aangemaakt. Voeg hier de e-mailadressen of Microsoft 365-groepen toe die de rol moeten krijgen. Wijzigingen zijn direct van kracht. Beheerders van de workspace zien altijd alle data, ongeacht de RLS-instelling.
Werkt RLS ook in combinatie met DirectQuery?
Ja, maar er zijn nuances. Bij DirectQuery stuurt Power BI de RLS-filter door naar de onderliggende databron als een WHERE-clausule. De databron moet die filter dan zelf afdwingen. Bij sommige databronnen, zoals Azure SQL Database, kun je Single Sign-On (SSO) inschakelen zodat de identiteit van de Power BI-gebruiker wordt doorgegeven aan de databron. Test dit altijd grondig, want de beveiliging is in dat geval afhankelijk van de configuratie van de databron.