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. 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:
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.
På fliken Modellering väljer du Hantera roller.
I fönstret Hantera roller väljer du Ny för att skapa en ny roll.
Under Roller anger du ett namn för rollen och väljer retur.
Kommentar
Du kan inte definiera en roll med kommatecken, till exempel
London,ParisRole
.Under Välj tabeller väljer du den tabell som du vill använda ett säkerhetsfilter på radnivå för.
Under Filtrera data använder du standardredigeraren för att definiera dina roller. De uttryck som skapas returnerar ett sant eller falskt värde.
Kommentar
Alla säkerhetsfilter på radnivå som stöds i Power BI kan inte definieras med hjälp av standardredigeraren. Begränsningarna omfattar 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.
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. DAX-uttryck returnerar värdet true eller false. Exempel:
[Entity ID] = “Value”
. DAX-redigeraren är komplett med automatisk komplettering för formler (intellisense). Du kan markera kryssrutan ovanför uttrycksrutan för att verifiera uttrycket och X-knappen ovanför uttrycksrutan för att återställa ändringar.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). I den här uttrycksrutan använder du dessutom kommatecken för att separera DAX-funktionsargument även om du använder ett språk som normalt använder semikolonavgränsare, till exempel franska eller tyska.
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. 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.
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, till exempel franska eller tyska.
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 .
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 Infrastruktur och utför följande steg:
I Infrastruktur väljer du menyn Fler alternativ för en semantisk modell. Den här menyn visas när du hovrar på ett semantiskt modellnamn.
Välj Säkerhet.
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å.
- Distributionsgrupp
- E-postaktiverad grupp
- Microsoft Entra-säkerhetsgrupp
Observera att Microsoft 365-grupper inte stöds och inte kan läggas till i några roller.
Du kan också se hur många medlemmar som är en del av rollen med talet inom parenteser bredvid rollnamnet eller bredvid Medlemmar.
Ta bort medlemmar
Du kan ta bort medlemmar genom att välja X bredvid deras namn.
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.
- Välj Fler alternativ (...) bredvid rollen.
- Välj 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.
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.
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.
Relaterat innehåll
- Begränsa dataåtkomst med säkerhet på radnivå (RLS) för Power BI Desktop
- Vägledning om säkerhet på radnivå (RLS) i Power BI Desktop
- Planering av Power BI-implementering: Rapportera konsumentsäkerhetsplanering
- RLS för inbäddade scenarier för ISV:er
Frågor? Prova att fråga Power BI Community-förslag ? Bidra med idéer för att förbättra Power BI