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

Säkerhet på radnivå (RLS) med Power BI kan användas för att begränsa dataåtkomsten för givna användare. Filter begränsar dataåtkomsten på radnivå och du kan definiera filter i roller. I Power BI-tjänst har användare med åtkomst till en arbetsyta åtkomst till semantiska modeller på den arbetsytan. RLS begränsar endast dataåtkomst för användare med visningsbehörighet . Det gäller inte administratörer, medlemmar eller deltagare.

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

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 publicerar du även rolldefinitionerna.

Så här definierar du säkerhetsroller:

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

    Kommentar

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

  2. På fliken Modellering väljer du Hantera roller.

    Skärmbild av fliken Modellering med fokus på Hantera roller.

  3. I fönstret Hantera roller väljer du Skapa.

    Skärmbild av fönstret Hantera roller med fokus på Skapa.

  4. Under Roller anger du ett namn för rollen.

    Kommentar

    Du kan inte definiera en roll med kommatecken, till exempel London,ParisRole.

  5. Under Tabeller väljer du den tabell som du vill tillämpa en DAX-regel (dataanalysuttryck på).

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

    Skärmbild av fönstret Hantera roller som markerar ett exempel på DAX-uttryck.

    Kommentar

    Du kan använda username() i det här uttrycket. Tänk på att username() har formatet DOMAIN\username i Power BI Desktop. I Power BI-tjänst och Power BI-rapportserver är det i formatet för användarens användarhuvudnamn (UPN). Du kan också använda userprincipalname(), som alltid returnerar användaren i formatet för användarens huvudnamn, username@contoso.com.

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

    Skärmbild av dax-uttrycksfönstret för tabellfilter som markerar bockmarkeringen.

    Kommentar

    I den här uttrycksrutan använder du kommatecken för att separera DAX-funktionsargument ä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 tilldelar dem i Power BI-tjänst. Du kan aktivera dynamisk säkerhet i Power BI Desktop genom att använda DAX-funktionerna username() eller userprincipalname() och ha rätt relationer konfigurerade.

Som standard använder säkerhetsfiltrering på radnivå enkelriktade filter, oavsett om relationerna är inställda på enkel riktning eller dubbelriktad. Du kan aktivera dubbelriktad korsfiltrering manuellt med säkerhet på radnivå genom att markera relationen och markera kryssrutan Tillämpa säkerhetsfilter i båda riktningarna . Observera att om en tabell deltar i flera dubbelriktade relationer kan du bara välja det här alternativet för en av dessa relationer. Välj det här alternativet när du också har implementerat dynamisk säkerhet på radnivå på servernivå, där säkerhet på radnivå baseras på användarnamn eller inloggnings-ID.

Mer information finns i Dubbelriktad korsfiltrering med DirectQuery i Power BI och den tekniska artikeln Skydda tabell-BI-semantikmodellen .

Skärmbild av kryssrutan Tillämpa säkerhetsfilter.

Definiera roller och regler i Power BI med förbättrad säkerhetsredigerare på radnivå (förhandsversion)

Du kan snabbt och enkelt definiera säkerhetsroller och filter på radnivå i Power BI med hjälp av den förbättrade säkerhetsredigeraren på radnivå. Med den här redigeraren kan du växla mellan att använda standardlistegränssnittet och ett DAX-gränssnitt. När du publicerar till Power BI publicerar du även rolldefinitionerna.

Så här definierar du säkerhetsroller med hjälp av den förbättrade säkerhetsredigeraren på radnivå:

  1. I Power BI Desktop aktiverar du förhandsversionen genom att gå till Filalternativ > och Inställningar > Alternativ > Förhandsgranskningsfunktioner och aktivera "Utökad säkerhetsredigerare på radnivå". Du kan också använda den här redigeraren i tjänsten genom att redigera datamodellen i Power BI-tjänst.

  2. Importera data till power BI-semantikmodellen eller konfigurera en DirectQuery-anslutning.

  3. Välj Hantera roller i menyfliksområdet.

    Skärmbild av knappen Hantera roller i menyfliksområdet Skrivbord.

  4. I fönstret Hantera roller väljer du Ny för att skapa en ny roll.

    Skärmbild av hur du skapar en ny roll i den förbättrade säkerhetsredigeraren på radnivå.

  5. Under Roller anger du ett namn för rollen och väljer retur.

    Skärmbild av att byta namn på en roll i den förbättrade säkerhetsredigeraren på radnivå.

  6. Under Välj tabeller väljer du den tabell som du vill använda ett säkerhetsfilter på radnivå för.

  7. Under Filtrera data använder du standardredigeraren för att definiera dina roller. De uttryck som skapas returnerar ett sant eller falskt värde.

    Skärmbild av ett exempel på hur du använder standardredigeraren i den förbättrade säkerhetsredigeraren på radnivå.

    Kommentar

    Alla säkerhetsfilter på radnivå som stöds i Power BI kan inte definieras med hjälp av standardredigeraren. Begränsningar inkluderar uttryck som i dag bara kan definieras med DAX, inklusive dynamiska regler som username() eller userprincipalname(). Om du vill definiera roller med hjälp av dessa filter växlar du till att använda DAX-redigeraren.

  8. Du kan också välja Växla till DAX-redigeraren för att växla till att använda DAX-redigeraren för att definiera din roll. Du kan växla tillbaka till standardredigeraren genom att välja Växla till standardredigeraren. Alla ändringar som görs i något av redigeringsgränssnitten sparas när du byter gränssnitt när det är möjligt.

    Skärmbild av ett exempel på hur du använder DAX-redigeraren i den förbättrade säkerhetsredigeraren på radnivå.

    När du definierar en roll med hjälp av DAX-redigeraren som inte kan definieras i standardredigeraren, uppmanas du om du försöker växla till standardredigeraren med en varning om att växlande redigerare kan leda till att viss information går förlorad. Om du vill behålla den här informationen väljer du Avbryt och fortsätter endast att redigera den här rollen i DAX-redigeraren.

    Skärmbild av en exempeldialogruta när du växlar från DAX till standardredigeraren i förbättrad säkerhetsredigerare på radnivå.

  9. Välj Spara

Verifiera rollerna i Power BI Desktop

När du har skapat dina roller testar du resultatet av rollerna i Power BI Desktop.

  1. På fliken Modellering väljer du Visa som.

    Skärmbild av fliken Modellering som visar Visa som.

    Fönstret Visa som roller visas, där du ser de roller som du har skapat.

    Skärmbild av fönstret Visa som roller med Ingen markerad.

  2. Välj en roll som du skapade. Välj sedan OK för att tillämpa den rollen.

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

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

    Skärmbild av fönstret Visa som roller med en exempelanvändare angiven.

    Det är bäst att ange UPN (User Principal Name) eftersom det är vad Power BI-tjänst och Power BI-rapportserver använder.

    I Power BI Desktop visar Andra användare endast olika resultat om du använder dynamisk säkerhet baserat på dina DAX-uttryck. I det här fallet måste du inkludera användarnamnet och rollen.

  4. Välj OK.

    Rapporten återges baserat på vad RLS-filtren tillåter användaren att se.

    Kommentar

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

Hantera säkerhet på din modell

Om du vill hantera säkerheten för din semantiska modell öppnar du arbetsytan där du sparade din semantiska modell i Power BI-tjänst och utför följande steg:

  1. I Power BI-tjänst väljer du menyn Fler alternativ för en semantisk modell. Den här menyn visas när du hovrar på ett semantiskt modellnamn, oavsett om du väljer det från navigeringsmenyn eller på arbetsytans sida.

    Skärmbild som visar menyn Fler alternativ på arbetsytan.

    Skärmbild som visar menyn Fler alternativ i navigeringsmenyn.

  2. Välj Säkerhet.

    Skärmbild som visar menyn Fler alternativ med Säkerhet valt.

Säkerhet tar dig till sidan Säkerhet på rollnivå där du lägger till medlemmar i en roll som du har skapat. Deltagare (och högre arbetsyteroller) ser Säkerhet och kan tilldela användare till en roll.

Arbeta med medlemmar

Lägg till medlemmar

I Power BI-tjänst 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 utanför organisationen.

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

Observera att Microsoft 365-grupper inte stöds och inte kan läggas till i några roller.

Skärmbild som visar hur du lägger till en medlem.

Du kan också se hur många medlemmar som är en del av rollen med talet inom parenteser bredvid rollnamnet eller bredvid Medlemmar.

Skärmbild som visar medlemmar i rollen.

Ta bort medlemmar

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

Skärmbild som visar hur du tar bort en medlem.

Verifiera rollen inom Power BI-tjänst

Du kan kontrollera att den roll som du definierade fungerar korrekt i Power BI-tjänst genom att testa rollen.

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

Skärmbild av alternativet Testa som roll.

Du omdirigeras till rapporten som publicerades från Power BI Desktop med den här semantiska modellen om den finns. Instrumentpaneler är inte tillgängliga för testning med alternativet Testa som roll .

I sidhuvudet visas den roll som tillämpas. Testa andra roller, en kombination av roller eller en specifik person genom att välja Visa som nu. Här ser du viktig behörighetsinformation som rör den person eller roll som testas. Mer information om hur behörigheter interagerar med RLS finns i RLS-användarupplevelsen.

Skärmbild av Nu visas som listruta för en specifik person.

Testa andra rapporter som är anslutna till den semantiska modellen genom att välja Visa i sidhuvudet. Du kan bara testa rapporter som finns på samma arbetsyta som din semantiska modell.

Skärmbild av Visa för att välja en annan rapport att testa.

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

Kommentar

Funktionen Testa som roll fungerar inte för DirectQuery-modeller med enkel inloggning (SSO) aktiverat. Dessutom kan inte alla aspekter av en rapport verifieras i funktionen Testa som roll, inklusive Q&A-visualiseringar, Quick Insights-visualiseringar och Copilot.

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 används den inom Power BI-tjänst.

I Power BI Desktop returnerar username() en användare i formatet DOMAIN\User och userprincipalname() returnerar en användare i formatet user@contoso.com.

Inom Power BI-tjänst returnerar både username() och userprincipalname() användarens huvudnamn (UPN). Detta ser ut ungefär som en e-postadress.

Använda RLS med arbetsytor i Power BI

Om du publicerar din Power BI Desktop-rapport på en arbetsyta i Power BI-tjänst tillämpas RLS-rollerna på medlemmar som har tilldelats rollen Visningsprogram på arbetsytan. Även om Tittarna får build-behörigheter för den semantiska modellen gäller RLS fortfarande. Om användare med build-behörigheter till exempel använder Analysera i Excel begränsas deras vy av data av RLS. Arbetsytemedlemmar som tilldelats administratör, medlem eller deltagare har redigeringsbehörighet för den semantiska modellen 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 arbetsytor.

Beaktanden och begränsningar

Du kan se de aktuella begränsningarna för säkerhet på radnivå på molnmodeller här:

  • Om du tidigare har definierat roller och regler i Power BI-tjänst måste du återskapa dem i Power BI Desktop.
  • Du kan bara definiera RLS på de semantiska modeller som skapats med Power BI Desktop. Om du vill aktivera RLS för semantiska modeller som skapats med Excel måste du konvertera filerna till Power BI Desktop-filer (PBIX) först. 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 slutgiltiga effektiva identiteten.
  • Endast Import- och DirectQuery-anslutningar stöds. Liveanslutningar till Analysis Services hanteras i den lokala modellen.
  • Funktionen Testa som roll/Visa som roll fungerar inte för DirectQuery-modeller med enkel inloggning (SSO) aktiverat.
  • Funktionen Testa som roll/vy som roll visar endast rapporter från arbetsytan semantiska modeller.
  • Funktionen Testa som roll/Visa som roll fungerar inte för sidnumrerade rapporter.

Tänk på att om en Power BI-rapport refererar till en rad med RLS konfigurerat visas samma meddelande som för ett borttaget eller icke-befintligt fält. För dessa användare ser det ut som att rapporten är bruten.

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änst? Fungerar de fortfarande om jag inte gör något?
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änst.

Fråga: Kan jag skapa dessa roller för Analysis Services-datakällor?
Svar: Ja, om du har importerat data till Power BI Desktop. Om du använder en live-anslutning kan du inte konfigurera RLS inom Power BI-tjänst. Du definierar RLS i Analysis Services-modellen lokalt.

Fråga: Kan jag använda RLS för att begränsa vilka kolumner eller mått som mina användare kan komma åt?
Svar: Nej, om en användare har åtkomst till en viss rad med data kan de se alla datakolumner för den raden. Om du vill begränsa åtkomsten till kolumner och kolumnmetadata bör du överväga att använda säkerhet på objektnivå.

Fråga: Låter RLS mig dölja detaljerade data men ge åtkomst till data som sammanfattas i visuella objekt?
Svar: Nej, du skyddar enskilda rader med data, men användarna kan alltid se information eller sammanfattade data.

Fråga: Min datakälla har redan säkerhetsroller definierade (till exempel SQL Server-roller eller SAP BW-roller). Vad är relationen mellan de här rollerna 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 datakällan. I det här fallet bör du definiera RLS för att framtvinga säkerhetsregler för användare som ansluter i Power BI. Om du använder DirectQuery används säkerhetsrollerna i datakällan. 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.

Fråga: Kan en användare tillhöra mer än en roll?
Svar: En användare kan tillhöra flera roller och rollerna är additiva. Om en användare till exempel tillhör rollerna "Försäljning" och "Marknadsföring" kan de se data för båda dessa roller.

Frågor? Prova att fråga Power BI Community-förslag ? Bidra med idéer för att förbättra Power BI