Zabezpieczenia na poziomie wiersza (RLS) w Serwer raportów usługi Power BI
Skonfigurowanie zabezpieczeń na poziomie wiersza przy użyciu Serwer raportów usługi Power BI może ograniczyć dostęp do danych dla danych dla danych użytkowników. Filtry ograniczają dostęp do danych na poziomie wiersza i można definiować filtry w ramach ról. Jeśli używasz domyślnych uprawnień w Serwer raportów usługi Power BI, każdy użytkownik z uprawnieniami wydawcy lub menedżera zawartości dla raportu usługi Power BI może przypisać członków do ról dla tego raportu.
Zabezpieczenia na poziomie wiersza można skonfigurować dla raportów zaimportowanych do usługi Power BI za pomocą programu Power BI Desktop. Zabezpieczenia na poziomie wiersza można również skonfigurować w raportach korzystających z trybu DirectQuery, takich jak program SQL Server. Należy pamiętać, że zabezpieczenia na poziomie wiersza nie są przestrzegane, jeśli połączenie DirectQuery używa zintegrowanego uwierzytelniania dla czytelników raportów. W przypadku połączeń na żywo usług Analysis Services należy skonfigurować zabezpieczenia na poziomie wiersza w modelu lokalnym. Opcja zabezpieczeń nie jest wyświetlana dla zestawów danych 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ń:
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.
Na karcie Modelowanie wybierz pozycję Zarządzaj rolami.
W oknie Zarządzanie rolami wybierz pozycję Nowy, aby utworzyć nową rolę.
W obszarze Role podaj nazwę roli i wybierz Enter.
Uwaga
Nie można zdefiniować roli z przecinkiem, na przykład
London,ParisRole
.W obszarze Wybierz tabele wybierz tabelę, do której chcesz zastosować filtr zabezpieczeń na poziomie wiersza.
W obszarze Filtruj dane użyj edytora domyślnego, aby zdefiniować role. Utworzone wyrażenia zwracają wartość true lub false.
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.
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.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). 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.
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.
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.
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.
Dwukierunkowe filtrowanie krzyżowe
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ć dwukierunkowy filtrowanie krzyżowe z zabezpieczeniami na poziomie wiersza.
Zaznacz relację i zaznacz pole wyboru Zastosuj filtr zabezpieczeń w obu kierunkach .
Zaznacz to pole wyboru podczas implementowania dynamicznych zabezpieczeń na poziomie wiersza na podstawie nazwy użytkownika lub identyfikatora logowania.
Aby dowiedzieć się więcej, zobacz Dwukierunkowe filtrowanie krzyżowe przy użyciu trybu DirectQuery w programie Power BI Desktop i oficjalny dokument techniczny Zabezpieczanie tabelarycznego semantycznego modelu analizy biznesowej.
Weryfikowanie ról w programie Power BI Desktop
Po utworzeniu ról przetestuj wyniki ról w programie Power BI Desktop.
Na karcie Modelowanie wybierz pozycję Wyświetl jako.
Zostanie wyświetlone okno Wyświetl jako role , w którym są widoczne utworzone role.
Wybierz utworzoną rolę. Następnie wybierz przycisk OK , aby zastosować tę rolę.
Raport renderuje dane istotne dla tej roli.
Możesz również wybrać pozycję Inny użytkownik i podać danego użytkownika.
Najlepiej podać główną nazwę użytkownika (UPN), ponieważ jest to usługa Power BI i Serwer raportów usługi Power BI.
W programie Power BI Desktop inny użytkownik wyświetla różne wyniki tylko wtedy, gdy używasz zabezpieczeń dynamicznych na podstawie wyrażeń języka DAX. W takim przypadku należy uwzględnić nazwę użytkownika oraz rolę.
Wybierz przycisk OK.
Raport jest renderowany na podstawie tego, co filtry zabezpieczeń na poziomie wiersza umożliwiają użytkownikowi wyświetlanie.
Uwaga
Funkcja Wyświetl jako role nie działa w przypadku modeli DirectQuery z włączonym logowaniem jednokrotnym.
Dodawanie członków do ról
Po zapisaniu raportu w Serwer raportów usługi Power BI można zarządzać zabezpieczeniami i dodawać lub usuwać członków na serwerze. Tylko użytkownicy z uprawnieniami wydawcy lub menedżera zawartości dla raportu mają dostępną opcję zabezpieczeń na poziomie wiersza i nie są wyszarzone.
Jeśli raport nie ma potrzebnych ról, musisz otworzyć go w programie Power BI Desktop, dodać lub zmodyfikować role, a następnie zapisać go z powrotem do Serwer raportów usługi Power BI.
W programie Power BI Desktop zapisz raport, aby Serwer raportów usługi Power BI. Musisz użyć wersji programu Power BI Desktop dla Serwer raportów usługi Power BI.
W usłudze raportów usługi Power BI wybierz wielokropek (...) obok raportu.
Wybierz pozycję Zarządzaj zabezpieczeniami> na poziomie wiersza.
Na stronie Zabezpieczenia na poziomie wiersza dodasz członków do roli utworzonej w programie Power BI Desktop.
Aby dodać członka, wybierz pozycję Dodaj członka.
Wprowadź użytkownika lub grupę w polu tekstowym w formacie Nazwa użytkownika (DOMENA\użytkownik) i wybierz role, które chcesz przypisać do nich. Członek musi należeć do organizacji.
W zależności od tego, jak skonfigurowano usługę Active Directory, tutaj również działa wprowadzenie głównej nazwy użytkownika. W takim przypadku serwer raportów wyświetli odpowiednią nazwę użytkownika na liście.
Kliknij przycisk OK , aby zastosować.
Aby usunąć członków, zaznacz pole wyboru obok ich nazw i wybierz pozycję Usuń. Jednocześnie można usunąć wielu członków.
username() i 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 Serwer raportów usługi Power BI ich używa.
W programie Power BI Desktop nazwa użytkownika() zwraca użytkownika w formacie DOMAIN\User i userprincipalname() zwraca użytkownika w formacie user@contoso.com.
W Serwer raportów usługi Power BI nazwa użytkownika() i userprincipalname() zwracają główną nazwę użytkownika (UPN), która jest podobna do adresu e-mail.
Jeśli używasz uwierzytelniania niestandardowego w Serwer raportów usługi Power BI, zwraca on format nazwy użytkownika skonfigurowany dla użytkowników.
Rozważania i ograniczenia
Poniżej przedstawiono bieżące ograniczenia zabezpieczeń na poziomie wiersza w modelach usługi Power BI.
Użytkownicy, którzy mieli raporty korzystające z funkcji języka DAX username(), zauważą nowe zachowanie, gdy główna nazwa użytkownika (UPN) jest zwracana z wyjątkiem sytuacji, w której jest używana funkcja DirectQuery ze zintegrowanymi zabezpieczeniami. Ponieważ zabezpieczenia na poziomie wiersza nie są przestrzegane w tym scenariuszu, zachowanie w tym scenariuszu pozostaje niezmienione.
Zabezpieczenia na poziomie wiersza można definiować tylko w zestawach danych utworzonych za pomocą programu Power BI Desktop. Aby włączyć zabezpieczenia na poziomie wiersza dla zestawów danych utworzonych za pomocą programu Excel, musisz najpierw przekonwertować pliki na pliki programu Power BI Desktop (PBIX). Dowiedz się więcej o konwertowaniu plików programu Excel.
Obsługiwane są tylko połączenia wyodrębniania, przekształcania, ładowania (ETL) i zapytania bezpośredniego przy użyciu przechowywanych poświadczeń. Połączenia na żywo z usługami Analysis Services i połączeniami DirectQuery przy użyciu zintegrowanego uwierzytelniania są obsługiwane w bazowym źródle danych.
Jeśli używasz zintegrowanych zabezpieczeń z trybem DirectQuery, użytkownicy mogą zauważyć:
- Zabezpieczenia na poziomie wiersza są wyłączone i zwracane są wszystkie dane.
- Użytkownicy nie mogą aktualizować przypisań ról i otrzymują błąd na stronie Zarządzanie zabezpieczeniami na poziomie wiersza.
- W przypadku funkcji nazwy użytkownika języka DAX możesz nadal otrzymywać nazwę użytkownika jako DOMENA\UŻYTKOWNIK.
Autorzy raportów nie mają dostępu do wyświetlania danych raportu w Serwer raportów usługi Power BI, dopóki nie przypiszą sobie ról odpowiednio po przekazaniu raportu.
Przypisania ról za pośrednictwem członkostwa w grupach są obsługiwane tylko wtedy, gdy Serwer raportów usługi Power BI jest skonfigurowany do uruchamiania z uwierzytelnianiem NTLM lub Kerberos. Serwery z uwierzytelnianiem niestandardowym lub Windows Basic potrzebują użytkowników jawnie przypisanych do ról.
Często zadawane pytania
Czy mogę utworzyć te role dla źródeł danych usług Analysis Services?
Dane można zaimportować 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 w modelu usług Analysis Services lokalnie.
Czy mogę użyć zabezpieczeń na poziomie wiersza, aby ograniczyć kolumny lub miary dostępne dla moich użytkowników?
L.p. Jeśli użytkownik ma dostęp do określonego wiersza danych, może zobaczyć wszystkie kolumny danych dla tego wiersza.
Czy zabezpieczenia na poziomie wiersza pozwalają ukryć szczegółowe dane, ale zapewniają dostęp do danych podsumowanych w wizualizacjach?
Nie, zabezpieczasz poszczególne wiersze danych, ale użytkownicy zawsze widzą szczegóły lub podsumowane dane.
Czy mogę dodać nowe role w programie Power BI Desktop, jeśli mam już przypisane role i członków?
Tak, jeśli masz już zdefiniowane role i członków przypisanych w Serwer raportów usługi Power BI, możesz tworzyć dodatkowe role i ponownie publikować raport bez wpływu na bieżące przypisania.
Powiązana zawartość
Masz więcej pytań? Spróbuj zadać Społeczność usługi Power BI