Toegang tot Power BI-modelgegevens beperken

Voltooid

Als gegevensmodeller stelt u RLS in door een of meer rollen te maken. Een rol heeft een unieke naam in het model en bevat meestal een of meer regels. Regels dwingen filters af op modeltabellen met behulp van DAX-filterexpressies (Data Analysis Expressions).

Notitie

Een gegevensmodel heeft standaard geen rollen. Een gegevensmodel zonder rollen betekent dat gebruikers (die gemachtigd zijn om een query uit te voeren op het gegevensmodel) toegang hebben tot alle modelgegevens.

Tip

Het is mogelijk om een rol te definiëren die geen regels bevat. In dit geval biedt de rol toegang tot alle rijen van alle modeltabellen. Deze rolset is geschikt voor een gebruiker met beheerdersrechten die alle gegevens mag bekijken.

U kunt rollen maken, valideren en beheren in Power BI Desktop. Voor Azure Analysis Services- of SQL Server Analysis Services-modellen kunt u rollen maken, valideren en beheren met behulp van SQL Server Data Tools (SSDT).

U kunt ook rollen maken en beheren met behulp van SQL Server Management Studio (SSMS) of met behulp van een hulpprogramma van derden, zoals Tabular Editor.

Bekijk de volgende geanimeerde afbeelding om meer inzicht te krijgen in hoe RLS de toegang tot gegevens beperkt.

Animated diagram demonstrates how row-level security works for two users who each have access to specific country data.

Ontwerpprincipes voor stervormige schema's toepassen

U wordt aangeraden ontwerpprincipes voor stervormige schema's toe te passen om een model te produceren dat bestaat uit dimensie- en feitentabellen. Het is gebruikelijk om Power BI in te stellen om regels af te dwingen die dimensietabellen filteren, zodat modelrelaties deze filters efficiënt kunnen doorgeven aan feitentabellen.

De volgende afbeelding is het modeldiagram van het gegevensmodel van de verkoopanalyse van Adventure Works. Het toont een stervormig schemaontwerp dat bestaat uit één feitentabel met de naam Sales. De andere tabellen zijn dimensietabellen die ondersteuning bieden voor de analyse van verkoopmetingen op datum, verkoopgebied, klant, reseller, order, product en verkoper. Let op de modelrelaties die alle tabellen verbinden. Deze relaties geven filters (direct of indirect) door aan de tabel Sales .

Screenshot shows a Power B I Desktop model diagram comprising the tables and relationships as described in the previous paragraph.

Dit modelontwerp ondersteunt voorbeelden die in deze les worden gepresenteerd.

Regels definiëren

Regelexpressies worden geëvalueerd binnen rijcontext. Rijcontext betekent dat de expressie voor elke rij wordt geëvalueerd met behulp van de kolomwaarden van die rij. Wanneer de expressie TRUE retourneert, kan de gebruiker de rij zien.

Tip

Als u meer wilt weten over rijcontext, kunt u de module Berekende tabellen en kolommen toevoegen aan power BI Desktop-modellen . Hoewel in deze module het toevoegen van modelberekeningen wordt beschreven, bevat deze een eenheid waarin rijcontext wordt geïntroduceerd en beschreven.

U kunt regels definiëren die statisch of dynamisch zijn.

Statische regels

Statische regels maken gebruik van DAX-expressies die verwijzen naar constanten.

Houd rekening met de volgende regel die wordt toegepast op de tabel Regio waarmee de gegevenstoegang tot Midwest-verkoop wordt beperkt.


'Region'[Region] = "Midwest"

In de volgende stappen wordt uitgelegd hoe Power BI de regel afdwingt. Met deze methode:

  1. Hiermee filtert u de tabel Regio , wat resulteert in één zichtbare rij (voor Midwest).

  2. Hiermee wordt de modelrelatie gebruikt om het filter Regiotabel door te geven aan de tabel State , wat resulteert in 14 zichtbare rijen (de regio Midwest bestaat uit 14 statussen).

  3. Hiermee wordt de modelrelatie gebruikt om het tabelfilter State door te geven aan de tabel Verkoop , wat resulteert in duizenden zichtbare rijen (de verkoopgegevens voor de staten die deel uitmaken van de regio Midwest).

De eenvoudigste statische regel die u kunt maken, beperkt de toegang tot alle tabelrijen. Houd rekening met de volgende regel die is toegepast op de tabel Verkoopdetails (niet weergegeven in het modeldiagram).


FALSE()

Deze regel zorgt ervoor dat gebruikers geen toegang hebben tot tabelgegevens. Dit kan handig zijn wanneer verkopers geaggregeerde verkoopresultaten (uit de tabel Verkoop ) maar geen details op orderniveau mogen zien.

Het definiëren van statische regels is eenvoudig en effectief. Overweeg ze te gebruiken wanneer u er slechts een paar moet maken, zoals mogelijk het geval is bij Adventure Works waar er slechts zes REGIO's in de VS zijn. Houd echter rekening met nadelen: het instellen van statische regels kan aanzienlijke inspanningen vergen om te maken en in te stellen. Hiervoor moet u ook de gegevensset bijwerken en opnieuw publiceren wanneer er nieuwe regio's worden toegevoegd.

Als er veel regels moeten worden ingesteld en u verwacht dat u in de toekomst nieuwe regels toevoegt, kunt u in plaats daarvan dynamische regels maken.

Dynamische regels

Dynamische regels gebruiken specifieke DAX-functies die omgevingswaarden retourneren (in plaats van constanten). Omgevingswaarden worden geretourneerd van drie specifieke DAX-functies:

  • USERNAME of USERPRINCIPALNAME : retourneert de geverifieerde Power BI-gebruiker als tekstwaarde.

  • CUSTOMDATA: retourneert de eigenschap CustomData die is doorgegeven in de verbindingsreeks. Niet-Power BI-rapportagehulpprogramma's die verbinding maken met de gegevensset met behulp van een verbindingsreeks deze eigenschap, zoals Microsoft Excel, kunnen instellen.

Notitie

Houd er rekening mee dat de functie USERNAME de gebruiker retourneert in de indeling DOMEIN\gebruikersnaam wanneer deze wordt gebruikt in Power BI Desktop. Wanneer u echter in de Power BI-service gebruikt, wordt de indeling van de UPN (User Principal Name) van de gebruiker geretourneerd, zoals username@adventureworks.com. U kunt ook de functie USERPRINCIPALNAME gebruiken, die altijd de gebruiker retourneert in de notatie user principal name.

Overweeg een herzien modelontwerp dat nu de (verborgen) AppUser-tabel bevat. Elke rij van de tabel AppUser beschrijft een gebruikersnaam en regio. Met een modelrelatie met de tabel Regio worden filters uit de tabel AppUser doorgegeven.

Image shows a revised model diagram that now includes the AppUser table. This table has two columns: Region and User Name.

De volgende regel die wordt toegepast op de tabel AppUser beperkt de gegevenstoegang tot de regio('s) van de geverifieerde gebruiker.


'AppUser'[UserName] = USERPRINCIPALNAME()

Het definiëren van dynamische regels is eenvoudig en effectief wanneer in een modeltabel gebruikersnaamwaarden worden opgeslagen. Hiermee kunt u een gegevensgestuurd RLS-ontwerp afdwingen. Wanneer verkopers bijvoorbeeld worden toegevoegd aan of verwijderd uit de tabel AppUser (of zijn toegewezen aan verschillende regio's), werkt deze ontwerpbenadering gewoon.

Rollen valideren

Wanneer u rollen maakt, is het belangrijk om ze te testen om ervoor te zorgen dat ze de juiste filters toepassen. Voor gegevensmodellen die zijn gemaakt in Power BI Desktop, is er de functie Weergeven als waarmee u het rapport kunt zien wanneer verschillende rollen worden afgedwongen en verschillende gebruikersnaamwaarden worden doorgegeven.

Screenshot shows the Power B I Desktop Modeling ribbon. The “View as” command is highlighted.

Roltoewijzingen instellen

Roltoewijzingen moeten worden ingesteld voordat gebruikers toegang hebben tot Power BI-inhoud. Roltoewijzing omvat het toewijzen van Microsoft Entra-beveiligingsobjecten aan rollen. Beveiligingsobjecten kunnen gebruikersaccounts of beveiligingsgroepen zijn.

Tip

Indien mogelijk is het een goed idee om rollen toe te wijzen aan beveiligingsgroepen. Op die manier zijn er minder toewijzingen en kunt u het groepslidmaatschapsbeheer delegeren aan de netwerkbeheerders.

Voor ontwikkelde Power BI Desktop-modellen wordt roltoewijzing doorgaans uitgevoerd in de Power BI-service. Voor Azure Analysis Services- of SQL Server Analysis Services-modellen wordt roltoewijzing doorgaans uitgevoerd in SSMS.

Zie voor meer informatie over het instellen van beveiliging op rijniveau:

Eenmalige aanmelding (SSO) gebruiken voor DirectQuery-bronnen

Wanneer uw gegevensmodel DirectQuery-tabellen bevat en de bijbehorende gegevensbron ondersteuning biedt voor eenmalige aanmelding, kan de gegevensbron gegevensmachtigingen afdwingen. Op deze manier dwingt de database beveiliging van beveiliging op rijniveau en Power BI-gegevenssets en -rapporten af.

Houd er rekening mee dat Adventure Works een Azure SQL Database heeft voor hun verkoopbewerkingen die zich in dezelfde tenant bevinden als Power BI. De database dwingt beveiliging op rijniveau af om de toegang tot rijen in verschillende databasetabellen te beheren. U kunt een DirectQuery-model maken dat zonder rollen verbinding maakt met deze database en deze publiceert naar de Power BI-service. Wanneer u de gegevensbronreferenties in de Power BI-service instelt, schakelt u eenmalige aanmelding in. Wanneer rapportgebruikers Power BI-rapporten openen, geeft Power BI hun identiteit door aan de gegevensbron. De gegevensbron dwingt vervolgens beveiliging op rijniveau af op basis van de identiteit van de rapportgebruiker.

Screenshot shows the data source credentials window with the S O option enabled.

Zie Beveiliging op rijniveau voor informatie over Azure SQL Database RLS.

Notitie

Berekende tabellen en berekende kolommen die verwijzen naar een DirectQuery-tabel vanuit een gegevensbron met SSO-verificatie, worden niet ondersteund in de Power BI-service.

Zie Eenmalige aanmelding (SSO) voor DirectQuery-bronnen voor meer informatie over gegevensbronnen die SSO ondersteunen.