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ługa Power BI użytkownicy z dostępem do obszaru roboczego mają dostęp do modeli semantycznych w tym obszarze roboczym. Zabezpieczenia na poziomie wiersza ograniczają tylko dostęp do danych dla użytkowników z uprawnieniami osoby przeglądającego . Nie dotyczy administratorów, członków ani współautorów.

Zabezpieczenia na poziomie wiersza można skonfigurować dla modeli danych importowanych do usługi Power BI za pomocą usługi Power BI. Zabezpieczenia na poziomie wiersza można również skonfigurować na semantycznych modelach korzystających z trybu DirectQuery, takich jak program SQL Server. W przypadku połączeń usług Analysis Services lub Azure Analysis Services można 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 trybu 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 przedstawiający okno Zarządzanie rolami z wyróżnionym 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ługa Power BI i Serwer raportów usługi Power BI jest ona w formacie głównej nazwy użytkownika (UPN). Alternatywnie można użyć nazwy userprincipalname(), która zawsze zwraca użytkownika w formacie głównej nazwy użytkownika, username@contoso.com. 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 (np. francuskich lub niemieckich).

  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 (np. francuskich lub niemieckich).

  9. Wybierz pozycję Zapisz.

Nie można przypisywać użytkowników do roli w programie Power BI Desktop. Przypisujesz je w usługa Power BI. Zabezpieczenia dynamiczne w programie Power BI Desktop można włączyć, korzystając z funkcji języka 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ądzanie zabezpieczeniami w 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 Sieć szkieletowa 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 umożliwiają przejście do strony Zabezpieczenia na poziomie ról, na której są dodawane elementy członkowskie do utworzonej roli. Współautor (i wyższe role obszaru roboczego) zobaczy pozycję Zabezpieczenia i może przypisać użytkowników do roli.

Praca z członkami

Dodawanie 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ługa 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 pozycję Testuj jako rolę.

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. Pulpity nawigacyjne 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 wyświetlając 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 zabezpieczeniami na poziomie wiersza, zobacz Środowisko użytkownika zabezpieczeń na poziomie wiersza.

Zrzut ekranu przedstawiający wyświetlanie jako listy rozwijanej 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 przedstawiający wyświetlanie, aby wybrać inny raport 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 w przypadku modeli DirectQuery z włączonym logowaniem jednokrotnym. Ponadto nie wszystkie aspekty raportu można zweryfikować w funkcji Testuj jako rolę, w tym wizualizacje pytań i odpowiedzi, wizualizacje szybkich szczegółowych informacji i Copilot.

Używanie funkcji języka DAX username() lub userprincipalname()

Możesz skorzystać z funkcji języka 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ługa 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ługa Power BI nazwa użytkownika() i userprincipalname() będą zwracać główną nazwę użytkownika (UPN). Wygląda to podobnie do adresu e-mail.

Używanie zabezpieczeń na poziomie wiersza z obszarami roboczymi w usłudze Power BI

Jeśli opublikujesz raport programu Power BI Desktop w obszarze roboczym w usługa Power BI, role zabezpieczeń na poziomie wiersza zostaną zastosowane do członków przypisanych do roli Osoba przeglądająca w obszarze roboczym. Nawet jeśli osoby przeglądające otrzymują uprawnienia kompilacji do modelu semantycznego, zabezpieczenia na poziomie wiersza nadal mają 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 wiersza. Członkowie obszaru roboczego przypisani administrator, członek lub współautor mają uprawnienia do edycji modelu semantycznego i dlatego zabezpieczenia na poziomie wiersza nie mają do nich zastosowania. Jeśli chcesz, aby zabezpieczenia na poziomie wiersza były stosowane do osób w obszarze roboczym, możesz przypisać je tylko do roli Osoba przeglądająca . 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.
  • Zabezpieczenia na poziomie wiersza można definiować tylko na semantycznych modelach utworzonych za pomocą programu Power BI Desktop. Jeśli chcesz włączyć zabezpieczenia na poziomie wiersza dla modeli semantycznych utworzonych za pomocą programu Excel, musisz najpierw przekonwertować pliki na pliki programu Power BI Desktop (PBIX). Dowiedz się więcej.
  • Nie można dodać jednostek usługi do roli zabezpieczeń na poziomie wiersza. W związku z tym zabezpieczenia na poziomie wiersza nie są stosowane dla aplikacji używających jednostki usługi jako ostatecznej obowiązującej 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 w przypadku raportów podzielonych na strony.

Należy pamiętać, że jeśli raport usługi Power BI odwołuje się do wiersza ze skonfigurowanym zabezpieczeniami na poziomie wiersza, ten sam komunikat jest wyświetlany co w przypadku usuniętego lub nieistnienego 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 w ramach usługa Power BI. Zabezpieczenia na poziomie wiersza są definiowane lokalnie w modelu usług Analysis Services.

Pytanie: Czy mogę użyć zabezpieczeń na poziomie wiersza, aby ograniczyć kolumny lub miary dostępne 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 zabezpieczenia na poziomie wiersza pozwalają ukryć szczegółowe dane, ale zapewniają 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). Jaka jest relacja między tymi rolami a zabezpieczeniami na poziomie wiersza?
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ć zabezpieczenia na poziomie wiersza, aby wymusić reguły zabezpieczeń dla użytkowników łączących się w usłudze 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 zadać sugestie dotyczące Społeczność usługi Power BI? Współtworzenie pomysłów na ulepszanie usługi Power BI