Udostępnij za pośrednictwem


Zabezpieczenia na poziomie wiersza w usłudze Power BI

Zabezpieczenia na poziomie wiersza w usłudze Power BI mogą służyć do ograniczania dostępu do danych dla określonych użytkowników. Filtry ograniczają dostęp do danych na poziomie wiersza i można definiować filtry w ramach ról. W usłudze Power BI użytkownicy z dostępem do obszaru roboczego mają dostęp do modeli semantycznych tam dostępnych. RLS ogranicza dostęp do danych tylko dla użytkowników z uprawnieniami Przeglądającego. Nie dotyczy administratorów, członków ani współautorów.

Można skonfigurować RLS dla modeli danych importowanych do Power BI przy użyciu tej usługi. Zabezpieczenia na poziomie wiersza można również skonfigurować na semantycznych modelach korzystających z DirectQuery, takich jak SQL Server. W przypadku połączeń na żywo usług Analysis Services lub Azure Analysis Services należy skonfigurować zabezpieczenia na poziomie wiersza w modelu, a nie w usłudze Power BI. Opcja zabezpieczeń nie jest wyświetlana dla modeli semantycznych połączeń na żywo.

Definiowanie ról i reguł w programie Power BI Desktop

Role i reguły można zdefiniować w programie Power BI Desktop. Za pomocą tego edytora można przełączać się między użyciem domyślnego interfejsu rozwijanego i interfejsu języka DAX. Podczas publikowania w usłudze Power BI można również opublikować definicje ról.

Aby zdefiniować role zabezpieczeń:

  1. Zaimportuj dane do raportu programu Power BI Desktop lub skonfiguruj połączenie DirectQuery.

    Uwaga

    Nie można definiować ról w programie Power BI Desktop dla połączeń na żywo usług Analysis Services. Należy to zrobić w modelu usług Analysis Services.

  2. Na karcie Modelowanie wybierz pozycję Zarządzaj rolami.

    Zrzut ekranu przedstawiający kartę Modelowanie z wyróżnioną pozycją Zarządzanie rolami.

  3. W oknie Zarządzanie rolami wybierz pozycję Nowy, aby utworzyć nową rolę.

    Zrzut ekranu przedstawiający okno Zarządzanie rolami z wyróżnionym przyciskiem Utwórz nową rolę.

  4. W obszarze Role podaj nazwę roli i wybierz Enter.

    Zrzut ekranu okna Zarządzanie rolami, wyróżniający zmianę nazwy roli.

    Uwaga

    Nie można zdefiniować roli z przecinkiem, na przykład London,ParisRole.

  5. W obszarze Wybierz tabele wybierz tabelę, do której chcesz zastosować filtr zabezpieczeń na poziomie wiersza.

  6. W obszarze Filtruj dane użyj edytora domyślnego, aby zdefiniować role. Utworzone wyrażenia zwracają wartość true lub false.

    Zrzut ekranu przedstawiający domyślny edytor okna Zarządzanie rolami na potrzeby definiowania zabezpieczeń na poziomie wiersza.

    Uwaga

    Nie wszystkie filtry zabezpieczeń na poziomie wiersza obsługiwane w usłudze Power BI można zdefiniować przy użyciu edytora domyślnego. Ograniczenia obejmują wyrażenia, które obecnie można zdefiniować tylko przy użyciu języka DAX, w tym reguł dynamicznych, takich jak username() lub userprincipalname(). Aby zdefiniować role za pomocą tych filtrów, przejdź do edytora języka DAX.

  7. Opcjonalnie wybierz pozycję Przełącz do edytora języka DAX, aby przełączyć się na używanie edytora języka DAX w celu zdefiniowania roli. Wyrażenia języka DAX zwracają wartość true lub false. Na przykład: [Entity ID] = “Value”. Edytor języka DAX jest kompletny z funkcją autouzupełniania dla formuł (IntelliSense). Możesz zaznaczyć znacznik wyboru powyżej pola wyrażenia, aby zweryfikować wyrażenie i przycisk X powyżej pola wyrażenia, aby przywrócić zmiany.

    Zrzut ekranu przedstawiający okno Zarządzanie rolami z wyróżnionym przykładowym wyrażeniem języka DAX.

    Uwaga

    W tym wyrażeniu można użyć nazwy użytkownika( ). Należy pamiętać, że nazwa użytkownika() ma format DOMAIN\username w programie Power BI Desktop. W usłudze Power BI i Serwerze raportów usługi Power BI, jest to w formacie głównej nazwy użytkownika (UPN). Ponadto w tym polu wyrażenia użyj przecinków, aby oddzielić argumenty funkcji języka DAX, nawet jeśli używasz ustawień regionalnych, które zwykle używają separatorów średników, takich jak francuski lub niemiecki.

  8. Możesz wrócić do domyślnego edytora, wybierając pozycję Przełącz do domyślnego edytora. Wszystkie zmiany wprowadzone w interfejsie edytora są utrwalane podczas przełączania interfejsów, gdy jest to możliwe. Podczas definiowania roli przy użyciu edytora języka DAX, którego nie można zdefiniować w edytorze domyślnym, jeśli spróbujesz przełączyć się do edytora domyślnego, zostanie wyświetlony monit z ostrzeżeniem, że przełączanie edytorów może spowodować utratę niektórych informacji. Aby zachować te informacje, wybierz pozycję Anuluj i kontynuuj edytowanie tej roli tylko w edytorze języka DAX.

    Zrzut ekranu przedstawiający okno dialogowe potwierdzające, że chcesz przełączyć się do edytora domyślnego.

    Uwaga

    W tym polu wyrażenia użyj przecinków, aby oddzielić argumenty funkcji języka DAX, nawet jeśli używasz ustawień regionalnych, które zwykle używają separatorów średników, takich jak francuski lub niemiecki.

  9. Wybierz pozycję Zapisz.

Nie można przypisywać użytkowników do roli w programie Power BI Desktop. Przypisujesz je w usłudze Power BI. Zabezpieczenia dynamiczne w programie Power BI Desktop można włączyć, korzystając z funkcji DAX username() lub userprincipalname() oraz skonfigurowanych odpowiednich relacji.

Domyślnie filtrowanie zabezpieczeń na poziomie wiersza używa filtrów jednokierunkowych, niezależnie od tego, czy relacje są ustawione na jeden kierunek, czy dwukierunkowy. Możesz ręcznie włączyć dwukierunkowe filtrowanie krzyżowe z zabezpieczeniami na poziomie wiersza, zaznaczając relację i zaznaczając pole wyboru Zastosuj filtr zabezpieczeń w obu kierunkach . Należy pamiętać, że jeśli tabela bierze udział w wielu relacjach dwukierunkowych, możesz wybrać tę opcję tylko dla jednej z tych relacji. Wybierz tę opcję po zaimplementowaniu dynamicznych zabezpieczeń na poziomie wiersza na poziomie serwera, gdzie zabezpieczenia na poziomie wiersza są oparte na nazwie użytkownika lub identyfikatorze logowania.

Aby uzyskać więcej informacji, zobacz Dwukierunkowe filtrowanie krzyżowe przy użyciu zapytania bezpośredniego w usłudze Power BI i artykuł techniczny Zabezpieczanie tabelarycznego modelu semantycznego analizy biznesowej.

Zrzut ekranu przedstawiający ustawienie relacji modelu w celu zastosowania filtru zabezpieczeń w obu kierunkach.

Zarządzaj zabezpieczeniami swojego modelu

Aby zarządzać zabezpieczeniami w modelu semantycznym, otwórz obszar roboczy, w którym zapisano model semantyczny w usłudze Fabric, i wykonaj następujące czynności:

  1. W obszarze Fabric wybierz menu Więcej opcji dla modelu semantycznego. To menu jest wyświetlane po umieszczeniu wskaźnika myszy na nazwie semantycznego modelu.

    Zrzut ekranu przedstawiający menu Więcej opcji w menu nawigacji.

  2. Kliknij Zabezpieczenia.

    Zrzut ekranu przedstawiający menu Więcej opcji z wybraną opcją Zabezpieczenia.

Zabezpieczenia przenoszą cię do strony Zabezpieczenia na poziomie ról, gdzie dodajesz członków do utworzonej roli. Współautorzy (i wyższe role obszaru roboczego) będą mieli dostęp do opcji Zabezpieczenia i mogą przypisywać użytkowników do ról.

Uwaga

Zabezpieczenia można zarządzać tylko w modelach, które mają role zabezpieczeń na poziomie wiersza zdefiniowane już w programie Power BI Desktop lub podczas edytowania modelu danych w usłudze Power BI. Jeśli model nie ma jeszcze zdefiniowanych ról, nie możesz zarządzać zabezpieczeniami w usłudze Power BI.

Praca z członkami

Dodaj członków

W usługa Power BI możesz dodać członka do roli, wpisując adres e-mail lub nazwę użytkownika lub grupy zabezpieczeń. Nie można dodać grup utworzonych w usłudze Power BI. Możesz dodawać członków zewnętrznych do organizacji.

Aby skonfigurować zabezpieczenia na poziomie wiersza, możesz użyć następujących grup.

Należy pamiętać, że grupy platformy Microsoft 365 nie są obsługiwane i nie można ich dodać do żadnych ról.

Zrzut ekranu przedstawiający sposób dodawania członka.

Możesz również zobaczyć, ile członków jest częścią roli, według liczby w nawiasach obok nazwy roli lub obok pozycji Członkowie.

Zrzut ekranu przedstawiający członków w roli.

Usuń członków

Możesz usunąć członków, wybierając znak X obok ich nazwy.

Zrzut ekranu przedstawiający sposób usuwania członka.

Weryfikowanie roli w usłudze Power BI

Możesz sprawdzić, czy zdefiniowana rola działa poprawnie w usługa Power BI, testując rolę.

  1. Wybierz pozycję Więcej opcji (...) obok roli.
  2. Wybierz Test jako rola.

Zrzut ekranu przedstawiający opcję Testuj jako rolę.

Nastąpi przekierowanie do raportu opublikowanego z programu Power BI Desktop przy użyciu tego modelu semantycznego, jeśli istnieje. Panele nie są dostępne do testowania przy użyciu opcji Testuj jako rolę.

W nagłówku strony wyświetlana jest rola, która jest stosowana. Przetestuj inne role, kombinację ról lub określoną osobę, wybierając pozycję Teraz przeglądane jako. W tym miejscu zobaczysz ważne szczegóły uprawnień dotyczące testowanej osoby lub roli. Aby uzyskać więcej informacji na temat interakcji uprawnień z RLS (zabezpieczeniami na poziomie wiersza), zobacz Doświadczenie użytkownika RLS.

Zrzut ekranu listy rozwijanej 'Teraz przeglądasz jako' dla określonej osoby.

Przetestuj inne raporty połączone z modelem semantycznym, wybierając pozycję Wyświetl w nagłówku strony. Raporty można testować tylko w tym samym obszarze roboczym co model semantyczny.

Zrzut ekranu pokazujący wybór innego raportu do przetestowania.

Aby powrócić do normalnego wyświetlania, wybierz pozycję Wstecz do zabezpieczeń na poziomie wiersza.

Uwaga

Funkcja Test jako rola nie działa dla modeli DirectQuery z włączonym jednokrotnym logowaniem (SSO). Ponadto nie wszystkie aspekty raportu można zweryfikować w funkcji Testuj jako rola, w tym wizualizacje Pytań i Odpowiedzi, wizualizacje szybkich wglądów i Copilot.

Używanie funkcji DAX username() lub userprincipalname()

Możesz skorzystać z funkcji DAX username() lub userprincipalname() w zestawie danych. Można ich używać w wyrażeniach w programie Power BI Desktop. Podczas publikowania modelu będzie on używany w usłudze Power BI.

W programie Power BI Desktop nazwa użytkownika() zwróci użytkownika w formacie DOMAIN\User i userprincipalname() zwróci użytkownika w formacie user@contoso.com.

W ramach usługi Power BI, username() i userprincipalname() będą zwracać Nazwę Główną Użytkownika (UPN). Wygląda to podobnie do adresu e-mail.

Korzystanie z RLS (zabezpieczenia na poziomie wiersza) z obszarami roboczymi w usłudze Power BI

Jeśli opublikujesz raport programu Power BI Desktop w obszarze roboczym w usłudze Power BI, role zabezpieczeń na poziomie wiersza zostaną zastosowane do członków przypisanych do roli przeglądającego w obszarze roboczym. Nawet jeśli przeglądający otrzymują uprawnienia kompilacji do modelu semantycznego, RLS nadal ma zastosowanie. Jeśli na przykład osoby przeglądające z uprawnieniami do tworzenia używają funkcji Analizuj w programie Excel, ich widok danych jest ograniczony przez zabezpieczenia na poziomie wierszy. Członkowie obszaru roboczego przypisani jako Administrator, Członek lub Współautor mają uprawnienia do edytowania modelu semantycznego, więc RLS nie ma wobec nich zastosowania. Jeśli chcesz, aby RLS było stosowane do osób w obszarze roboczym, możesz przypisać im tylko rolę Przeglądający. Przeczytaj więcej na temat ról w obszarach roboczych.

Rozważania i ograniczenia

Bieżące ograniczenia dotyczące zabezpieczeń na poziomie wiersza w modelach chmury można znaleźć tutaj:

  • Jeśli wcześniej zdefiniowano role i reguły w usługa Power BI, należy je ponownie utworzyć w programie Power BI Desktop.
  • RLS można definiować tylko na semantycznych modelach utworzonych za pomocą programu Power BI Desktop. Najpierw, jeśli chcesz włączyć zabezpieczenia na poziomie wiersza (RLS) dla modeli semantycznych utworzonych za pomocą programu Excel, musisz przekonwertować swoje pliki na pliki programu Power BI Desktop (PBIX). Dowiedz się więcej.
  • Nie można dodać zasad usługi do roli RLS. W związku z tym zabezpieczenia na poziomie wiersza nie są stosowane dla aplikacji używających jednostki usługi jako końcowej efektywnej tożsamości.
  • Obsługiwane są tylko połączenia Import i DirectQuery. Połączenia na żywo z usługami Analysis Services są obsługiwane w modelu lokalnym.
  • Funkcja Test as role/View as role nie działa w przypadku modeli DirectQuery z włączonym logowaniem jednokrotnym.
  • Funkcja Testuj jako rolę/wyświetl jako rolę pokazuje tylko raporty z obszaru roboczego modeli semantycznych.
  • Funkcja Testuj jako rolę/Wyświetl jako rolę nie działa dla raportów podzielonych na strony.

Należy pamiętać, że jeśli raport Power BI odwołuje się do wiersza z RLS, ten sam komunikat jest wyświetlany co w przypadku usuniętego lub nieistniejącego pola. Dla tych użytkowników wygląda na to, że raport jest uszkodzony.

Często zadawane pytania

Pytanie: Co zrobić, jeśli wcześniej utworzono role i reguły dla zestawu danych w usługa Power BI? Czy nadal działają, jeśli nic nie robię?
Odpowiedź: Nie, wizualizacje nie będą poprawnie renderowane. Musisz ponownie utworzyć role i reguły w programie Power BI Desktop, a następnie opublikować je w usługa Power BI.

Pytanie: Czy mogę utworzyć te role dla źródeł danych usług Analysis Services?
Odpowiedź: Tak, jeśli zaimportowano dane do programu Power BI Desktop. Jeśli używasz połączenia na żywo, nie możesz skonfigurować zabezpieczeń na poziomie wiersza (RLS) w ramach usługi Power BI. RLS jest definiowane lokalnie w modelu usług Analysis Services na miejscu.

Pytanie: Czy mogę użyć RLS (zabezpieczeń na poziomie wiersza) do ograniczenia kolumn lub metryk dostępnych dla moich użytkowników?
Odpowiedź: Nie, jeśli użytkownik ma dostęp do określonego wiersza danych, może zobaczyć wszystkie kolumny danych dla tego wiersza. Aby ograniczyć dostęp do kolumn i metadanych kolumn, rozważ użycie zabezpieczeń na poziomie obiektu.

Pytanie: Czy RLS pozwala ukryć szczegółowe dane i jednocześnie zapewnia dostęp do danych podsumowanych w wizualizacjach?
Odpowiedź: Nie, zabezpieczasz poszczególne wiersze danych, ale użytkownicy zawsze widzą szczegóły lub podsumowane dane.

Pytanie: Moje źródło danych ma już zdefiniowane role zabezpieczeń (na przykład role programu SQL Server lub role SAP BW). Jaki jest związek między tymi rolami a zabezpieczeniami na poziomie wierszy?
Odpowiedź: Odpowiedź zależy od tego, czy importujesz dane, czy używasz trybu DirectQuery. Jeśli importujesz dane do zestawu danych usługi Power BI, role zabezpieczeń w źródle danych nie są używane. W takim przypadku należy zdefiniować RLS, aby wymusić reguły zabezpieczeń dla użytkowników łączących się poprzez Power BI. Jeśli używasz trybu DirectQuery, używane są role zabezpieczeń w źródle danych. Gdy użytkownik otworzy raport, usługa Power BI wysyła zapytanie do bazowego źródła danych, które stosuje reguły zabezpieczeń do danych na podstawie poświadczeń użytkownika.

Pytanie: Czy użytkownik może należeć do więcej niż jednej roli?
Odpowiedź: Użytkownik może należeć do wielu ról, a role są addytywne. Jeśli na przykład użytkownik należy zarówno do ról "Sales" i "Marketing", może zobaczyć dane dla obu tych ról.

Pytania? Spróbuj zapytać Społeczność Power BI Sugerujesz? Współtworzenie pomysłów na ulepszanie usługi Power BI