Säkerhet på radnivå (RLS) med Power BI

Säkerhet på radnivå (RLS) med Power BI kan användas för att begränsa åtkomst till data för givna användare. Filter begränsar åtkomst till data på radnivå och du kan definiera filter inom roller. Medlemmar i en arbetsyta har åtkomst till datauppsättningar i arbetsytan i Power BI-tjänsten. RLS begränsar inte åtkomsten till data.

Du kan konfigurera RLS för datamodeller som importerats till Power BI med Power BI Desktop. Du kan också konfigurera RLS på datauppsättningar som använder DirectQuery, till exempel SQL Server. För live-anslutningar med Analysis Services eller Azure Analysis Services konfigurerar du säkerhet på radnivå i modellen, inte i Power BI Desktop. Säkerhetsalternativet visas inte för datauppsättningar med live-anslutning.

Definiera roller och regler i Power BI Desktop

Du kan definiera roller och regler i Power BI Desktop. När du publicerar till Power BI publiceras även rolldefinitionerna.

Följ dessa steg för att definiera säkerhetsroller.

  1. Importera data till Power BI Desktop-rapporten eller konfigurera en DirectQuery-anslutning.

    Anteckning

    Du kan inte definiera roller i Power BI Desktop för live-anslutningar i Analysis Services. Du måste göra det i Analysis Services-modellen.

  2. Välj Hantera roller på fliken Modellering.

    Välj Hantera roller

  3. Välj Skapa i fönstret Hantera roller.

    Välj Skapa

  4. Ange ett namn på rollen under Roller.

  5. Välj den tabell som du vill tillämpa DAX-regeln på under Tabeller.

  6. I rutan DAX-uttryck för tabellfilter anger du DAX-uttrycket. Det här uttrycket returnerar värdet true eller false. Exempel: [Entity ID] = “Value”.

    Fönstret Hantera roller

    Anteckning

    Du kan använda username() i detta uttryck. Observera att username() har formatet DOMÄN\användarnamn i Power BI Desktop. I Power BI-tjänsten och Power BI-rapportservern används formatet för användarens huvudnamn (UPN). Du kan även använda userprincipalname() , vilket alltid returnerar användaren i samma format som dess huvudnamn, användarnamn@contoso.com.

  7. När du har skapat DAX-uttrycket markerar du kryssrutan ovanför uttrycksrutan för att verifiera uttrycket.

    Validera DAX-uttrycket

    Anteckning

    I den här uttrycksrutan använder du kommatecken för att separera DAX-funktionsargumenten även om du använder ett språk som normalt använder semikolonavgränsare (t.ex. franska eller tyska).

  8. Välj Spara.

Du kan inte tilldela användare till en roll i Power BI Desktop. Du kan tilldela dem i Power BI-tjänsten. Du kan aktivera dynamisk säkerhet i Power BI Desktop genom att använda DAX-funktionerna username() eller userprincipalname() samt konfigurera rätt relationer.

Som standard använder säkerhetsfiltrering på radnivå sig av enkelriktade filter, oavsett om relationerna är inställda på enkelriktade eller dubbelriktade. Du kan aktivera dubbelriktad korsfiltrering med säkerhet på radnivå manuellt genom att markera relationen och markera kryssrutan Tillämpa säkerhetsfilter i båda riktningarna. Välj den här rutan om du också har implementerat dynamisk säkerhet på radnivå på servernivå, där säkerheten på radnivå baseras på användarnamn eller inloggning-ID.

Mer information finns i dubbelriktad korsfiltrering med DirectQuery i Power BI Desktop och den tekniska artikeln skydda Tabular BI-Semantikmodellen.

Använd säkerhetsfilter

Verifiera rollerna i Power BI Desktop

När du har skapat rollerna kan du testa rollresultaten i Power BI Desktop.

  1. fliken Modellering väljer du Visa som.

    Välj Visa som roller

    Du kan se de roller du har skapat i fönstret Visa som roller.

    Fönstret Visa som roller

  2. Välj en roll du har skapat och sedan OK för att tillämpa rollen.

    Rapporterna återger de data som är relevanta för rollen.

  3. Du kan också välja Annan användare och ange en viss användare.

    Välj Annan användare

    Det är bäst att ange användarens huvudnamn (UPN), eftersom det är det som Power BI-tjänsten och Power BI-rapportservern använder.

    I Power BI Desktop visar bara Annan användare olika resultat om du använder dynamisk säkerhet baserad på dina DAX-uttryck.

  4. Välj OK.

    Rapporten återges baserat på vad användaren kan se.

    Anteckning

    Funktionen Visa som roll fungerar inte för DirectQuery-modeller med enkel inloggning Sign-On (SSO) aktiverat.

Nu när du är klar med att verifiera rollerna i Power BI Desktop kan du gå vidare och publicera rapporten till Power BI tjänsten.

Hantera säkerheten på din modell

Om du vill hantera säkerheten i din datamodell öppnar du arbetsytan där du sparade rapporten i Power BI-tjänsten och gör följande:

  1. I Power BI-tjänsten väljer du menyn Fler alternativ för en datauppsättning. Den här menyn visas när du hovrar över ett datauppsättningsnamn, oavsett om du väljer det från navigeringsmenyn eller arbetsytans sida.

    Menyn Fler alternativ i arbetsytan

    Menyn Fler alternativ i navigeringsmenyn

  2. Välj Säkerhet.

    Menyn Välj säkerhet från menyn Fler alternativ

Säkerhet tar dig till sidan Role-Level säkerhet där du lägger till medlemmar i en roll som du skapade i Power BI Desktop. Endast datauppsättningens ägare ser Security. Om datauppsättningen är i en grupp, visas bara säkerhetsalternativet för gruppens administratörer.

Du kan bara skapa eller ändra roller i Power BI Desktop.

Arbeta med medlemmar

Lägg till medlemmar

I Power BI-tjänsten kan du lägga till en medlem i rollen genom att skriva in e-postadressen eller namnet på användaren eller säkerhetsgruppen. Du kan inte lägga till grupper som skapats i Power BI. Du kan lägga till medlemmar som är externa för organisationen.

Du kan använda följande grupper för att ställa in säkerhet på radnivå.

  • Distributionsgrupp
  • E-postaktiverad grupp
  • Säkerhetsgrupp

Observera dock att Office 365 inte stöds och inte kan läggas till i några roller.

Lägga till en medlem

Du kan också se hur många medlemmar som är en del av rollen efter numret i parentes bredvid rollnamnet eller bredvid medlemmar.

Medlemmar i rollen

Ta bort medlemmar

Du kan ta bort medlemmar genom att välja X bredvid deras namn.

Ta bort medlem

Validera rollen i Power BI-tjänsten

Du kan verifiera att den roll som du har definierat fungerar korrekt i Power BI tjänsten genom att testa rollen.

  1. Välj Fler alternativ (...) bredvid rollen.
  2. Välj Testa data som roll.

Testa som roll

Du kommer att se rapporter som är tillgängliga för den här rollen. Instrumentpaneler visas inte i den här vyn. I sidhuvudet visas den roll som används.

Visas nu som

Testa andra roller eller en kombination av roller, genom att välja visar som.

Testa andra roller

Du kan välja att visa data som en specifik person, eller så kan du välja en kombination av tillgängliga roller för att verifiera att de fungerar.

Om du vill återgå till normal visning, väljer du tillbaka till säkerhet på radnivå.

Anteckning

Funktionen Testa som roll fungerar inte för DirectQuery-modeller med enkel inloggning Sign-On (SSO) aktiverat.

Använda DAX-funktionen username() eller userprincipalname()

Du kan dra nytta av DAX-funktionerna username() eller userprincipalname() i din datauppsättning. Du kan använda dem i uttryck i Power BI Desktop. När du publicerar din modell kommer den att användas i Power BI-tjänsten.

I Power BI Desktop username() returneras en användare i formatet domän\användare och userprincipalname() returneras en användare i formatet user@contoso.com.

I Power BI-tjänsten username() och userprincipalname() både returnerar användarens primära namn (User Principal Name). Detta liknar en e-postadress.

Använda RLS med arbetsytor i Power BI

Om du publicerar din Power BI Desktop-rapport till en ny arbetsyteupplevelse i Power BI-tjänsten tillämpas RLS-rollerna på medlemmar som har tilldelats rollen Läsare i arbetsytan. Även om tittare får behörighet att skapa för datauppsättningen gäller RLS fortfarande. Om till exempel användare med skapa-behörigheter använder Analysera i Excelskyddas deras datavy av RLS. Medlemmar i arbetsytan som tilldelats Admin, Medlem eller Deltagare har redigeringsbehörighet för datauppsättningen och därför gäller inte RLS för dem. Om du vill att RLS ska gälla för personer på en arbetsyta kan du bara tilldela dem rollen Läsare. Läs mer om roller i de nya arbetsytorna.

Varning

Om du har konfigurerat en klassisk arbetsyta så att medlemmar har redigeringsbehörighet tillämpas inte RLS-rollerna på dem. Användarna kan se alla data. Läs mer om klassiska arbetsytor.

Gruppinställningar

Överväganden och begränsningar

De aktuella begränsningarna för säkerhet på radnivå för molnmodeller är följande:

  • Om du tidigare har definierat roller och regler i Power BI-tjänsten måste du återskapa dem i Power BI Desktop.
  • Du kan endast definiera RLS på datauppsättningar som skapats med Power BI Desktop. Om du vill aktivera RLS för datauppsättningar som skapats med Excel måste du först konvertera filerna till PBIX-filer (Power BI Desktop-filer). Läs mer.
  • Tjänstens huvudnamn kan inte läggas till i en RLS-roll. Därför tillämpas inte RLS för appar som använder tjänstens huvudnamn som den slutliga effektiva identiteten.
  • Du kan bara använda Import- och DirectQuery-anslutningar. Live-anslutningar till Analysis Services hanteras i modellen lokalt.
  • Funktionen Testa som roll/Visa som roll fungerar inte för DirectQuery-modeller med enkel inloggning Sign-On (SSO) aktiverat.

Kända problem

Det finns ett känt problem där du får ett felmeddelande om du försöker publicera en tidigare publicerad rapport från Power BI Desktop. Scenariot är följande:

  1. Anna har en datauppsättning som har publicerats till Power BI-tjänsten och är konfigurerad med RLS.

  2. Hon uppdaterar rapporten i Power BI Desktop och publicerar den igen.

  3. Anna får ett fel.

Lösning: Publicera filen Power BI Desktop från tjänsten Power BI tills det här problemet är löst. Du kan göra det genom att välja Hämta > datafiler.

Vanliga frågor

Fråga: Vad händer om jag tidigare har skapat roller och regler för en datauppsättning i Power BI-tjänsten? Fungerar de fortfarande om jag inte gör någonting?
Svar: Nej, visuella objekt återges inte korrekt. Du måste återskapa rollerna och reglerna i Power BI Desktop och sedan publicera till Power BI-tjänsten.

Fråga: Kan jag skapa rollerna för Analysis Services-datakällor?
Svar: Du kan göra det om du har importerat datan till Power BI Desktop. Om du använder en live-anslutning kan du inte konfigurera RLS i Power BI-tjänsten. Detta definieras i Analysis Services-modellen lokalt.

Fråga: Kan jag använda RLS för att begränsa kolumner eller mått som är tillgängliga för mina användare?
Svar: Nej, om en användare har åtkomst till en viss rad med data kan de se alla datakolumner för den raden.

Fråga: Tillåter RLS att jag döljer detaljerade data men ger åtkomst till data som sammanfattas i visuella objekt?
Svar: Nej, du kan skydda enskilda datarader men användarna kan alltid se information eller sammanfattade data.

Fråga: Min datakälla har redan definierade säkerhetsroller (till exempel SQL Server eller SAP BW roller). Vad är förhållandet mellan dessa och RLS?
Svar: Svaret beror på om du importerar data eller använder DirectQuery. Om du importerar data till din Power BI-datauppsättning används inte säkerhetsrollerna i din datakälla. I så fall bör du definiera RLS att tillämpa säkerhetsregler för användare som ansluter i Power BI. Om du använder DirectQuery används säkerhetsrollerna i din datakälla. När en användare öppnar en rapport skickar Power BI en fråga till den underliggande datakällan, som tillämpar säkerhetsregler på data baserat på användarens autentiseringsuppgifter.

Nästa steg