RLS po publikacji nie działa? Oto miejsca, w których Power BI najczęściej się wykłada
RLS działa w Desktop, ale po publikacji w Power BI Service przestaje? Sprawdź najczęstsze przyczyny błędów po wdrożeniu: role, użytkowników, workspace, dataset i ustawienia zabezpieczeń.
Co zrobić, gdy RLS w Power BI nie działa po publikacji w usłudze?
Najpierw trzeba ustalić, na jakim etapie RLS przestaje działać: czy problem dotyczy samego modelu, przypisania użytkownika do roli, czy sposobu dostępu do raportu w usłudze Power BI. To, że reguła działa w Power BI Desktop, nie oznacza jeszcze, że zacznie działać po publikacji automatycznie.
W praktyce warto sprawdzić te elementy:
- Czy role zostały opublikowane razem z modelem – w usłudze wejdź do zestawu danych semantycznych i potwierdź, że role istnieją. Jeśli ich nie ma, model został opublikowany bez poprawnie zapisanych ról.
- Czy użytkownik lub grupa są przypisani do właściwej roli w usłudze – samo zdefiniowanie RLS w modelu nie wystarcza. Po publikacji trzeba przypisać odbiorców do roli w ustawieniach zabezpieczeń zestawu danych.
- Czy testujesz RLS na właściwym koncie – właściciel zestawu danych, administrator workspace lub użytkownik z podwyższonymi uprawnieniami może widzieć więcej niż zwykły odbiorca. Do weryfikacji użyj funkcji podglądu jako rola lub przetestuj na koncie końcowego użytkownika.
- Czy raport korzysta z właściwego zestawu danych semantycznych – po publikacji raport może być podpięty do innego modelu niż ten, w którym skonfigurowano RLS. Wtedy role istnieją, ale nie dotyczą raportu, który ogląda użytkownik.
Jeżeli mimo tego użytkownik nadal widzi wszystkie dane, sprawdź logikę filtra w samym modelu: relacje między tabelami muszą pozwalać na propagację filtra z tabeli objętej RLS do tabel raportowych. Częsty problem to poprawna definicja roli, ale brak skutecznego przepływu filtra przez relacje.
Jeśli używasz dynamicznego RLS, upewnij się też, że wartości używane w regule odpowiadają temu, co zwraca konto użytkownika w usłudze, na przykład w oparciu o USERPRINCIPALNAME(). Różnice między loginem testowym w Desktop a tożsamością w usłudze są częstą przyczyną błędnego działania po publikacji.
Najkrócej: po publikacji trzeba zweryfikować role, przypisania użytkowników, źródło raportu i działanie relacji w modelu. Dopiero komplet tych elementów decyduje o tym, czy RLS rzeczywiście zadziała w Power BI Service.
Najczęściej zadawane pytania i odpowiedzi odnośnie RLS po publikacji nie działa? Oto miejsca, w których Power BI najczęściej się wykłada
Najczęściej problem pojawia się między modelem a konfiguracją w Power BI Service. Reguła może być poprawna w Desktop, ale po publikacji trzeba jeszcze sprawdzić, czy role istnieją w zestawie danych, czy użytkownicy są do nich przypisani oraz czy raport faktycznie korzysta z tego samego modelu. Bez tego RLS nie zadziała tak, jak podczas testów lokalnych.
Najprościej trzeba wejść do ustawień zestawu danych semantycznych i potwierdzić obecność ról. Jeśli po publikacji nie widać zdefiniowanych ról, oznacza to zwykle, że model został opublikowany bez poprawnie zapisanej konfiguracji RLS. Sama poprawna definicja w Desktop nie wystarczy, jeśli nie trafiła do usługi razem z właściwą wersją modelu.
Najczęstszy błąd polega na tym, że role istnieją, ale użytkownicy nie są do nich przypisani w usłudze. Po publikacji trzeba osobno skonfigurować odbiorców w zabezpieczeniach zestawu danych. W praktyce warto sprawdzić:
- czy przypisano właściwego użytkownika lub grupę,
- czy wybrano odpowiednią rolę,
- czy test odbywa się na koncie odbiorcy, a nie administratora.
Najlepiej testować RLS z perspektywy końcowego użytkownika albo użyć podglądu jako rola. Test na koncie właściciela zestawu danych, administratora workspace lub osoby z podwyższonymi uprawnieniami może dać mylący wynik. W efekcie można odnieść wrażenie, że zabezpieczenia nie działają, choć problem wynika wyłącznie z uprzywilejowanego sposobu dostępu.
Tak, raport może pomijać oczekiwane role, jeśli po publikacji korzysta z innego modelu. W takiej sytuacji RLS może być poprawnie skonfigurowany, ale w zestawie danych, którego raport w ogóle nie używa. Dlatego przy diagnostyce trzeba potwierdzić nie tylko istnienie ról, lecz także źródło danych, do którego raport jest rzeczywiście podpięty.
RLS zadziała tylko wtedy, gdy filtr może przejść z tabeli objętej rolą do tabel używanych w raporcie. Sama definicja reguły nie wystarczy, jeśli relacje nie umożliwiają propagacji filtra. W praktyce trzeba sprawdzić:
- czy relacje łączą właściwe tabele,
- czy filtr dociera do danych prezentowanych na wizualizacjach,
- czy logika modelu odpowiada temu, jak użytkownik przegląda raport.
Najczęściej zawodzi zgodność między wartością zwracaną w usłudze a tym, czego oczekuje reguła. Jeśli dynamiczny RLS odwołuje się do USERPRINCIPALNAME(), trzeba upewnić się, że tożsamość użytkownika w Power BI Service odpowiada wartościom zapisanym w modelu. Różnice między loginem używanym podczas testów w Desktop a kontem w usłudze często prowadzą do błędnych wyników filtrowania.
Najlepiej zacząć od sprawdzenia czterech elementów: ról, przypisań, źródła raportu i relacji w modelu. Taka kolejność pozwala szybko ustalić, czy problem leży w konfiguracji usługi, czy w samej logice modelu. Jeśli używasz dynamicznego RLS, dopiero potem warto dodatkowo zweryfikować zgodność wartości zwracanych przez konto użytkownika w usłudze.