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. 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.

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 .

    Tillämpa säkerhetsfilter

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.

  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.

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.

  1. 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.

  2. I Power BI-rapporttjänsten väljer du ellipsen (...) bredvid rapporten.

  3. Välj Hantera>säkerhet på radnivå.

    Hantera säkerhet på radnivå

    På sidan Säkerhetradnivå lägger du till medlemmar i en roll som du skapade i Power BI Desktop.

  4. Om du vill lägga till en medlem väljer du Lägg till medlem.

  5. 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.

    Lägg till medlem till roll

    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.

  6. Klicka på OK för att tillämpa.

  7. 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.

    Ta bort medlemmar

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.

Har du fler frågor? Prova att fråga Power BI Community