Wat is Row-Level Security in Power BI?
Row-Level Security (RLS) is een beveiligingsfunctie in Power BI waarmee je per gebruiker of rol bepaalt welke rijen data zichtbaar zijn. Je maakt rollen aan in Power BI Desktop en koppelt er DAX-filters aan. Zo ziet een salespersoon alleen zijn eigen regio en een manager het totaaloverzicht, terwijl ze hetzelfde rapport gebruiken.
Row-Level Security in Power BI zorgt ervoor dat elke gebruiker alleen de data ziet die voor hem of haar bedoeld is, binnen hetzelfde rapport.
Wat RLS doet
Row-Level Security filtert data op rijniveau per gebruiker of groep. Je bouwt één rapport, maar iedere gebruiker ziet een ander deel van de gegevens. Een salespersoon in de regio Noord ziet alleen orders uit het Noorden, terwijl zijn manager het landelijke overzicht ziet. De filtering gebeurt op de achtergrond: de gebruiker merkt er niets van en hoeft zelf niets in te stellen. Power BI controleert bij het laden van het rapport welke rol van toepassing is en past de filters toe voordat de data naar de visual gaat.
Hoe RLS technisch werkt
RLS werkt via rollen die je aanmaakt in Power BI Desktop. Aan elke rol koppel je een DAX-filter op een of meerdere tabellen. Een eenvoudig voorbeeld: je filtert de tabel Regio zodat alleen rijen doorkomen waar [Regio] = "Noord". Die filter werkt door via de relaties in je datamodel naar andere tabellen. Als je model goed is opgezet met relaties in Power BI, hoef je de filter maar op één plek toe te passen.
Statische versus dynamische RLS
Bij statische RLS maak je een vaste rol per segment: één rol voor Noord, één voor Zuid, enzovoort. Dat werkt prima voor een klein aantal segmenten. Heb je tien regio’s of honderd medewerkers, dan wordt het beheer snel onoverzichtelijk. Dynamische RLS lost dit op met de DAX-functie USERPRINCIPALNAME(). Die geeft het e-mailadres van de ingelogde gebruiker terug. Je vergelijkt dat met een beheertabel in je datamodel die aangeeft welke gebruiker welke data mag zien. Zo heb je maar één rol nodig, ongeacht het aantal gebruikers.
Typische use cases
RLS past goed bij situaties waar data gevoelig is of waar je organisatorische grenzen wil respecteren. Veelgebruikte toepassingen zijn: salespersonen die alleen hun eigen klantenportefeuille zien, filiaalmanagers die beperkt zijn tot hun vestiging, of externe partners die alleen hun eigen projectdata inzien via Power BI Embedded. Ook bij HR-rapportages is RLS nuttig: medewerkers mogen hun eigen gegevens inzien, maar niet die van collega’s.
Beperkingen van RLS
RLS is een krachtige beveiliging, maar kent ook grenzen. Het werkt niet in alle verbindingsmodi even goed: bij DirectQuery is RLS afhankelijk van de beveiliging op de databron. Bij Import-modus zit de volledige dataset in de Power BI-dataset, maar filtert RLS wat de gebruiker te zien krijgt. Beheerders in Power BI Service zien altijd alle data, tenzij je expliciete maatregelen treft. Testen als een specifieke rol is mogelijk in Power BI Desktop via de knop “Weergeven als rol”, wat handig is voordat je publiceert.
Onze tip: Gebruik dynamische RLS met een aparte beheertabel in je datamodel. Koppel gebruikers aan hun toegestane segmenten in die tabel en verwijs er in je DAX-filter naar met USERPRINCIPALNAME(). Zo beheer je toegang centraal en hoef je je Power BI-rapport niet aan te passen als een medewerker van regio wisselt.
Veelgestelde vragen
Wat is het verschil tussen statische en dynamische RLS?
Bij statische RLS definieer je vaste filters per rol: de rol 'Noord' ziet altijd de regio Noord. Bij dynamische RLS gebruik je de DAX-functie USERNAME() of USERPRINCIPALNAME() om de filter automatisch af te stemmen op de ingelogde gebruiker. Dynamische RLS is flexibeler: je hoeft niet voor elke gebruiker een aparte rol aan te maken, maar je hebt wel een beheertabel nodig die aangeeft welke gebruiker toegang heeft tot welke data.
Wordt RLS ook afgedwongen bij het exporteren van data?
Ja, RLS werkt ook bij exports vanuit Power BI Service. Als een gebruiker data exporteert naar Excel of CSV, ziet hij alleen de rijen waartoe hij toegang heeft via zijn rol. Dat geldt ook voor Analyze in Excel en voor embedded rapporten. Het is dus een beveiliging op dataniveau, niet alleen op visueel niveau.
Kan ik RLS combineren met object-level security?
Ja. Power BI ondersteunt ook Object-Level Security (OLS), waarmee je hele tabellen of kolommen kunt verbergen voor bepaalde rollen. RLS filtert rijen, OLS verbergt kolommen of tabellen volledig. Beide zijn instelbaar in Power BI Desktop via de modelleringsweergave of via een externe tool zoals Tabular Editor. Voor de meeste use cases biedt RLS al voldoende beveiliging.