Säkerhet på radnivå (RLS) i Power BI-rapportserver
Om du konfigurerar säkerhet på radnivå (RLS) med Power BI-rapportserver kan du begränsa dataåtkomsten för givna användare. Filter begränsar dataåtkomsten på radnivå och du kan definiera filter i roller. Om du använder standardbehörigheterna i Power BI-rapportserver kan alla användare med Publisher- eller Content Manager-behörigheter för Power BI-rapporten tilldela medlemmar till roller för rapporten.
Du konfigurerar RLS för rapporter som importerats till Power BI med Power BI Desktop. Du kan också konfigurera RLS för rapporter som använder DirectQuery, till exempel SQL Server. Tänk på att RLS inte respekteras om din DirectQuery-anslutning använder integrerad autentisering för rapportläsare. För Analysis Services live-anslutningar konfigurerar du säkerhet på radnivå för den lokala modellen. Säkerhetsalternativet visas inte för live-anslutningsdatauppsättningar.
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.
Dubbelriktad korsfiltrering
Som standard använder säkerhetsfiltrering på radnivå enkelriktade filter, oavsett om relationerna är inställda på enkel riktning eller dubbelriktad. Du kan aktivera dubbelriktat korsfilter manuellt med säkerhet på radnivå.
Markera relationen och markera kryssrutan Tillämpa säkerhetsfilter i båda riktningarna .
Markera den här kryssrutan när du implementerar dynamisk säkerhet på radnivå baserat på användarnamn eller inloggnings-ID.
Mer information finns i Dubbelriktad korsfiltrering med DirectQuery i Power BI Desktop och det tekniska white paper om att skydda tabell-BI-semantikmodellen .
Verifiera rollerna i Power BI Desktop
När du har skapat dina roller testar du resultatet av rollerna i Power BI Desktop.
På fliken Modellering väljer du Visa som.
Fönstret Visa som roller visas, där du ser de roller som du har skapat.
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.
Du kan också välja Annan användare och ange en viss användare.
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.
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.
Lägga till medlemmar i roller
När du har sparat rapporten i Power BI-rapportserver hanterar du säkerhet och lägger till eller tar bort medlemmar på servern. Endast användare med antingen Publisher- eller Content Manager-behörigheter för rapporten har säkerhetsalternativet på radnivå tillgängligt och inte nedtonat.
Om rapporten inte har de roller den behöver måste du öppna den i Power BI Desktop, lägga till eller ändra roller och sedan spara den i Power BI-rapportserver.
Spara rapporten på Power BI-rapportserver i Power BI Desktop. Du måste använda versionen av Power BI Desktop för Power BI-rapportserver.
I Power BI-rapporttjänsten väljer du ellipsen (...) bredvid rapporten.
Välj Hantera>säkerhet på radnivå.
På sidan Säkerhet på radnivå lägger du till medlemmar i en roll som du skapade i Power BI Desktop.
Om du vill lägga till en medlem väljer du Lägg till medlem.
Ange användaren eller gruppen i textrutan i formatet Användarnamn (DOMÄN\användare) och välj de roller som du vill tilldela dem. Medlemmen måste finnas i din organisation.
Beroende på hur du har konfigurerat Active Directory fungerar det också att ange användarens huvudnamn här. I så fall visar rapportservern motsvarande användarnamn i listan.
Klicka på OK för att tillämpa.
Om du vill ta bort medlemmar markerar du kryssrutan bredvid deras namn och väljer Ta bort. Du kan ta bort flera medlemmar i taget.
username() och 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änder Power BI-rapportserver dem.
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-rapportserver returnerar både username() och userprincipalname() användarens huvudnamn (UPN), som liknar en e-postadress.
Om du använder anpassad autentisering i Power BI-rapportserver returneras det användarnamnsformat som du har konfigurerat för användare.
Beaktanden och begränsningar
Här följer de aktuella begränsningarna för säkerhet på radnivå för Power BI-modeller.
Användare som hade rapporter med dax-funktionen username() ser nu ett nytt beteende där UPN (User Principal Name) returneras UTOM när du använder DirectQuery med integrerad säkerhet. Eftersom RLS inte respekteras i det scenariot är beteendet i det scenariot oförändrat.
Du kan bara definiera RLS för datauppsättningar som skapats med Power BI Desktop. Om du vill aktivera RLS för datauppsättningar som skapats med Excel måste du konvertera dina filer till Power BI Desktop-filer (PBIX) först. Läs mer om att konvertera Excel-filer.
Endast ETL-anslutningar (Extract, Transform, Load) och DirectQuery med lagrade autentiseringsuppgifter stöds. Liveanslutningar till Analysis Services- och DirectQuery-anslutningar med integrerad autentisering hanteras i den underliggande datakällan.
Om du använder integrerad säkerhet med DirectQuery kan användarna märka följande:
- RLS är inaktiverat och alla data returneras.
- Användare kan inte uppdatera sina rolltilldelningar och få ett fel på sidan RLS-hantering.
- För dax-användarnamnsfunktionen fortsätter du att ta emot användarnamnet som DOMAIN\USER.
Rapportförfattare har inte åtkomst till att visa rapportdata i Power BI-rapportserver förrän de har tilldelat sig själva roller efter att ha laddat upp rapporten.
Rolltilldelningar via gruppmedlemskap stöds endast när Power BI-rapportserver har konfigurerats att köras med NTLM- eller Kerberos-autentisering. Servrar som körs med anpassad autentisering eller Windows Basic behöver användare som uttryckligen tilldelats roller.
Vanliga frågor
Kan jag skapa dessa roller för Analysis Services-datakällor?
Det kan du 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. RLS definieras i Analysis Services-modellen lokalt.
Kan jag använda RLS för att begränsa vilka kolumner eller mått som mina användare kan komma åt?
Nej. Om en användare har åtkomst till en viss rad med data kan de se alla datakolumner för den raden.
Låter RLS mig dölja detaljerade data men ge åtkomst till data som sammanfattas i visuella objekt?
Nej, du skyddar enskilda rader med data, men användarna kan alltid se informationen eller sammanfattade data.
Kan jag lägga till nya roller i Power BI Desktop om jag redan har tilldelat befintliga roller och medlemmar?
Ja, om du redan har definierat befintliga roller och medlemmar har tilldelats i Power BI-rapportserver kan du göra ytterligare roller och publicera om rapporten utan att påverka dina aktuella tilldelningar.
Relaterat innehåll
Har du fler frågor? Prova att fråga Power BI Community