Säkerhet på radnivå (RLS) i Power BI-rapportservern

Konfiguration av säkerhet på radnivå (RLS) med Power BI-rapportserver kan begränsa dataåtkomst för givna användare. Filter begränsar åtkomst till data på radnivå och du kan definiera filter inom roller. Om du använder standardbehörigheterna i Power BI-rapportservern kan alla användare med utgivarbehörighet eller innehållshanterarbehörighet för Power BI-rapporten tilldela medlemmar till roller för rapporten.

Du kan konfigurera RLS för rapporter som importerats till Power BI med Power BI Desktop. Du kan också konfigurera RLS på 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 rapportens läsare. För Analysis Services live-anslutningar konfigurerar du säkerhet på radnivå på den lokala modellen. 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.

Dubbelriktad korsfiltrering

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.

  • Välj relationen och markera kryssrutan Tillämpa säkerhetsfilter i båda riktningarna.

    Använd säkerhetsfilter

Markera den här rutan 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 faktabladet Skydda en Tabular BI-semantikmodell.

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.

Lägga till medlemmar i roller

När du sparar rapporten i Power BI-rapportservern hanterar du säkerhet och lägger till eller tar bort medlemmar på servern. Endast användare med utgivarbehörighet eller innehållshanterarbehörighet för rapporten har alternativet för säkerhet på radnivå tillgängligt och är inte nedtonade.

Om rapporten inte har de roller som behövs måste du öppna den i Power BI Desktop, lägga till eller ändra roller och sedan spara den igen på Power BI-rapportservern.

  1. Spara rapporten på Power BI-rapportservern 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 de tre punkterna ( ... ) bredvid rapporten.

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

    Hantera säkerhet på radnivå

    På sidan Säkerhet på radnivå kan du lägga till medlemmar till en roll som du har skapat 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 för användarnamn (domän\användare) och välj de roller som du vill tilldela dem. Den här medlemmen måste vara inom din organisation.

    Lägga till medlem till en roll

    Beroende på hur du har konfigurerat Active Directory kan du även ange användarens huvudnamn här. I så fall visar rapportservern motsvarande användarnamn i listan.

  6. Tillämpa genom att klicka på OK.

  7. Ta bort medlemmar genom att markera kryssrutan bredvid deras namn och välja Ta bort. Du kan ta bort flera medlemmar i taget.

    Ta bort medlemmar

username() och userprincipalname()

Du kan använda 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-rapportservern den.

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

I Power BI-rapportservern returnerar både username() och userprincipalname() användarens huvudnamn (UPN ), som liknar en e-postadress.

Om du använder anpassad autentisering i Power BI-rapportservern returneras användarnamnets format som du har konfigurerat för användare.

Överväganden och begränsningar

Här följer de aktuella begränsningarna för säkerhet på radnivå i Power BI-modeller.

Användare som hade rapporter med DAX-funktionen username() ser nu det nya beteendet där användarens huvudnamn (UPN) returneras förutom när han/hon använder DirectQuery med integrerad säkerhet. Eftersom ingen hänsyn tas till RLS i det här scenariot är beteendet i det här scenariot oförändrat.

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 om konvertering av Excel-filer.

Endast ETL- (Extract, Transform, Load) och DirectQuery-anslutningar med lagrade autentiseringsuppgifter stöds. Live-anslutningar till Analysis Services och DirectQuery-anslutningar som använder integrerad autentisering ska hanteras i den underliggande datakällan.

Om du använder integrerad säkerhet med DirectQuery kan dina användare märka följande:

  • RLS har inaktiverats och alla data returneras.
  • Användare kan inte uppdatera sin rolltilldelningar och får ett felmeddelande på sidan om att hantera RLS.
  • För DAX-användarnamnfunktionen kan du fortsätta att ta emot användarnamnet som domän\användare.

Rapportförfattare har inte behörighet att visa rapportdata i Power BI-rapportservern 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 för att köras med NTLM- eller Kerberos-autentisering. Servrar som kör med anpassad autentisering eller Windows Basic behöver användare som uttryckligen har tilldelats till roller.

Vanliga frågor och svar

Kan jag skapa rollerna för Analysis Services-datakällor?

Du kan göra det om du har importerat data till Power BI Desktop. Om du använder en live-anslutning kan du inte konfigurera RLS i Power BI-tjänsten. RLS definieras i Analysis Services-modellen lokalt.

Kan jag använda RLS för att begränsa kolumner eller mått som är tillgängliga för mina användare?

Nej. Om användarna har åtkomst till en viss datarad, kan de se alla datakolumner för den raden.

Tillåter RLS att jag döljer detaljerade data men ger åtkomst till data som sammanfattas i visuella objekt?

Nej, du kan skydda enskilda datarader men användarna kan alltid se information eller sammanfattade data.

Kan jag lägga till nya roller i Power BI Desktop om jag redan har befintliga roller och medlemmar som har tilldelats?

Om du redan har befintliga roller som definierats och medlemmar som tilldelats i Power BI-rapportservern kan du skapa ytterligare roller och publicera rapporten på nytt utan att det påverkar dina aktuella tilldelningar.

Nästa steg

Vad är Power BI-rapportservern? Administratörshandbok

Har du fler frågor? Fråga Power BI Community