Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power BI - Bezpieczeństwo: RLS, OLS i etykiety poufności
RLS i filtrowanie dwukierunkowe - Zastosuj filtr zabezpieczeń w obu kierunkach
Częsta rada na regułę RLS, której filtr nie dochodzi do faktów, brzmi: ustaw kierunek Oba i zaznacz opcję Zastosuj filtr zabezpieczeń w obu kierunkach. Taka reguła leży najczęściej na tabeli mapującej adresy na sklepy. Pokazujemy, jak działa filtr zabezpieczeń w obu kierunkach, dlaczego na modelu Nordvelli Power BI odmówił zapisu takiej relacji i jak zbudować regułę, która tej opcji nie potrzebuje.
W lekcji 21 rola Manager sklepu dostała regułę na tabeli MapaManagerow, która zostawia w mapie wiersz zalogowanej osoby. Podgląd z adresem piotr.nowak@nordvella.pl pokazywał na pasku rolę i adres, a raport całą sieć: 468 mln zł i 109 tys. transakcji. Relacja MapaManagerow do DimSklepy ma kardynalność Wiele do jednego (*:1) i Kierunek filtrowania krzyżowego ustawiony na Pojedyncza, a pole Zastosuj filtr zabezpieczeń w obu kierunkach jest wtedy wyszarzone.
Po zmianie kierunku na Oba i zaznaczeniu pola okno Edytowanie relacji nie zapisało zmiany. Komunikat zaczyna się od zdania „Tabela „DimSklepy” została skonfigurowana na potrzeby zabezpieczeń na poziomie wiersza, co oznacza wprowadzenie ograniczeń sposobu określania filtrów zabezpieczeń.” (w angielskiej wersji: „Table 'DimSklepy' is configured for row-level security, introducing constraints on how security filters are specified.”). Drugie zdanie, z nazwą relacji, mówi, że ustawienie zachowania filtrowania zabezpieczeń w tej relacji nie może mieć wartości Obydwie (w angielskiej wersji: „cannot be Both”).

Zobacz też: Szkolenie Power BI - Desktop, DAX i Online + Copilot
Filtr zwykły i filtr zabezpieczeń to dwie różne rzeczy. Kierunek filtrowania krzyżowego relacji decyduje, w którą stronę płyną filtry z fragmentatorów i wizualizacji. Według dokumentacji Microsoft filtry RLS płyną domyślnie w jednym kierunku, także w relacji z kierunkiem Oba. Dopiero pole Zastosuj filtr zabezpieczeń w obu kierunkach pozwala filtrowi roli przejść pod prąd. Dokumentacja dodaje dwa ograniczenia: gdy tabela ma kilka relacji dwukierunkowych, opcję zaznaczysz tylko w jednej z nich, a włączenie jej może spowolnić zapytania w dużych modelach.
Mechanizm sprawdziliśmy zapytaniem, w którym warunek roli jest zwykłym filtrem. Filtr na MapaManagerow zostawił 15 sklepów i 467 775 009,17 zł, a ten sam filtr z CROSSFILTER ustawionym na BOTH 1 sklep i 31 545 739,77 zł. Kierunek relacji przenosi więc ograniczenie, tylko RLS potrzebuje do tego osobnego ustawienia. Na modelu z lekcji nie dało się go włączyć, bo DimSklepy ma już reguły czterech ról statycznych. Ogólne skutki kierunku Oba opisujemy w poście o kierunku filtrowania Oba w relacji.
MapaManagerow, kliknij DimSklepy, potem Przełącz do edytora języka DAX i wpisz wyrażenie poniżej. Tabela mapująca jest w nim tylko źródłem listy numerów sklepów, a filtr trafia na tabelę, z której naturalnie płynie do faktów. Kliknij Zapisz.DimSklepy[SklepID] IN
SELECTCOLUMNS (
FILTER ( MapaManagerow, MapaManagerow[Email] = USERPRINCIPALNAME () ),
"SklepID", MapaManagerow[SklepID]
)MapaManagerow do DimSklepy jako Wiele do jednego (*:1) z kierunkiem Pojedyncza. Wiele do jednego, bo sklep może mieć kilku kierowników albo zastępcę. Pojedyncza, bo filtr nie musi już przechodzić przez tę relację. W modelu końcowym Nordvelli wszystkie relacje mają jednokierunkowe filtrowanie zabezpieczeń, co sprawdziliśmy zapytaniem do metadanych modelu.piotr.nowak@nordvella.pl, naciśnij Tab, zaznacz Manager sklepu i kliknij OK. W kursie raport pokazał 32 mln zł, 7 tys. transakcji i jeden sklep, Nordvella Kraków Stare Miasto. Ten sam warunek ogranicza inne fakty połączone z DimSklepy: w zapytaniu budżet sprzedaży spadł z 541 917 189,40 zł do 34 569 214,43 zł.Naprawione, gdy pod rolą z adresem kierownika raport pokazuje jego sklep, a relacja z tabeli mapującej zostaje jednokierunkowa. Pod podglądem roli uruchom w widoku zapytań w języku DAX zapytanie z licznikami COUNTROWS ( DimSklepy ) i COUNTROWS ( MapaManagerow ): w kursie dało 1 sklep i 1 wiersz mapy dla Piotra Nowaka. Sprawdź też drugiego kierownika i adres spoza mapy, który ma dać pusty raport.
Pisz reguły RLS na tabelach wymiarów, a tabele mapujące czytaj wewnątrz wyrażenia. Gdy w modelu pojawia się relacja z kierunkiem Oba, od razu sprawdź, czy przechodzi przez nią filtr roli, i zapisz w opisie modelu, dlaczego włączono przy niej filtr zabezpieczeń. Relacje i ich kierunki omawiamy w lekcji o modelu gwiazdy i relacjach.
Zachowanie programu sprawdziliśmy w Power BI Desktop 2.157 (wydanie z sierpnia 2026 r.) z polskim interfejsem, a przykłady na modelu sieci Nordvella z bezpłatnego kursu Power BI. Microsoft wydaje nową wersję Power BI Desktop co miesiąc, więc nazwy przycisków i limity usługi mogą się zmieniać. Aktualne wartości podaje dokumentacja Microsoft Learn.
Wróć do listy: 131 najczęstszych pytań i problemów związanych z Power BI
Komentarze (0)
Brak komentarzy...