Begränsa åtkomsten till Power BI-modellobjekt

Slutförd

Som datamodellerare kan du överväga att begränsa användaråtkomsten till Power BI-modellobjekt. Säkerhet på objektnivå (OLS) kan begränsa åtkomsten till specifika tabeller och kolumner samt deras metadata. Vanligtvis använder du OLS för att skydda objekt som lagrar känsliga data, till exempel personliga data för anställda.

När Power BI tillämpar OLS begränsar det inte bara åtkomsten till tabeller och kolumner, utan kan också skydda metadata. När du skyddar metadata går det inte att hämta information om skyddade tabeller och kolumner med hjälp av dynamiska hanteringsvyer (DMV:er).

Viktigt!

Tabellmodeller kan dölja tabeller och kolumner (och andra objekt) med hjälp av ett perspektiv. Ett perspektiv definierar visningsbara delmängder av modellobjekt för att ge rapportförfattare ett specifikt fokus. Perspektiv är avsedda att minska komplexiteten i en modell, vilket hjälper rapportförfattare att hitta resurser av intresse. Perspektiv är dock inte en säkerhetsfunktion eftersom de inte skyddar objekt. En användare kan fortfarande köra frågor mot en tabell eller kolumn även om den inte är synlig för dem.

Överväg ett exempel på Adventure Works. Den här organisationen har en dimensionstabell för informationslager med namnet DimEmployee. Tabellen innehåller kolumner som lagrar anställdas namn, telefon, e-postadress och lön. Även om allmänna rapportanvändare kan se anställdas namn och kontaktuppgifter, får de inte kunna se lönevärden. Endast högre personal får se lönevärden. Datamodelleraren använde därför OLS för att endast bevilja åtkomst till lönekolumnen till specifik personalpersonal.

Skärmbild som visar en modelldiagramvy över tabellen Anställd, som innehåller kolumnen begränsad lön.

OLS är en funktion som ärvs från Azure Analysis Services (AAS) och SQL Server Analysis Services (SSAS). Funktionen är tillgänglig i Power BI Premium för att ge bakåtkompatibilitet för modeller som migrerats till Power BI. Därför går det inte att helt konfigurera OLS i Power BI Desktop.

Konfigurera OLS

Om du vill konfigurera OLS börjar du med att skapa roller. Du kan skapa roller i Power BI Desktop på samma sätt som när du konfigurerar RLS. Därefter måste du lägga till OLS-regler i rollerna. Den här funktionen stöds inte av Power BI Desktop, så du måste använda en annan metod.

Du lägger till OLS-regler i en Power BI Desktop-modell med hjälp av en XML för analysslutpunkt (XMLA). XMLA-slutpunkter är tillgängliga med Power BI Premium och ger åtkomst till Analysis Services-motorn i Power BI-tjänst. Läs-/skrivslutpunkten stöder datauppsättningshantering, livscykelhantering för program, avancerad datamodellering med mera. Du kan använda XMLA-slutpunktsaktiverade API:er för skript, till exempel TMSL (Tabular Model Scripting Language) eller PowerShell SqlServer-modulen. Eller så kan du använda ett klientverktyg, till exempel SSMS. Det finns också verktygsalternativ från tredje part, till exempel Tabellredigeraren, som är ett verktyg med öppen källkod för att skapa, underhålla och hantera modeller.

Som standard är alla modelltabeller och kolumner inte begränsade. Du kan ange dem till Ingen eller Läs. När värdet är Ingen kan användare som är associerade med rollen inte komma åt objektet. När det är inställt på Läs kan användare som är associerade med rollen komma åt objektet. När du begränsar specifika kolumner kontrollerar du att tabellen inte är inställd på Ingen.

När du har lagt till OLS-reglerna kan du publicera modellen i Power BI-tjänst. Använd samma process för RLS för att mappa konton och säkerhetsgrupper till rollerna.

Att tänka på

När en användare inte har behörighet att komma åt en tabell eller kolumn i en Power BI-rapport får de ett felmeddelande. Meddelandet informerar dem om att objektet inte finns.

Skärmbild som visar ett Power BI Desktop-felmeddelande när ett visuellt rapportobjekt försöker köra frågor mot en begränsad kolumn.

Överväg noggrant om OLS är rätt lösning för ditt projekt. När en användare öppnar en Power BI-rapport som frågar ett begränsat objekt (för dem) kan felmeddelandet vara förvirrande och resultera i en negativ upplevelse. För dem ser det ut som att rapporten är bruten. En bättre metod kan vara att skapa en separat uppsättning modeller eller rapporter för de olika rapportkonsumentkraven.

Begränsningar

Det finns begränsningar att känna till när du implementerar OLS.

Du kan inte blanda RLS och OLS i samma roll. Om du behöver tillämpa RLS och OLS i samma modell skapar du separata roller som är dedikerade till varje typ. Du kan inte heller ange säkerhet på tabellnivå om den bryter en relationskedja. Om det till exempel finns relationer mellan tabellerna A och B och B och C kan du inte skydda tabell B. Om tabell B skyddas kan en fråga i tabell A inte skicka relationerna mellan tabell A och B och B och C. I det här fallet kan du konfigurera en separat relation mellan tabellerna A och C.

Diagrammet visar relationsexemplet som beskrivs i föregående stycke.

Modellrelationer som refererar till en skyddad kolumn fungerar dock, förutsatt att kolumnens tabell inte är skyddad.

Slutligen, även om det inte går att skydda mått, begränsas automatiskt ett mått som refererar till skyddade objekt.

Mer information finns i Säkerhet på objektnivå.