Konfigurowanie baz danych katalogu serwera raportów usługi Power BI dla programu SQL Server w systemie Linux

Dotyczy: SQL Server 2019 (15.x) i nowsze wersje na Linux SQL Server Reporting Services (2019 i nowszych wersji)

W tym artykule wyjaśniono, jak zainstalować i skonfigurować bazę danych katalogu serwera raportów usługi Power BI (PBIRS) dla programu SQL Server w systemie Linux.

Wymagania wstępne

W tym artykule przykłady korzystają z domeny CORPNET.CONTOSO.COMi poniższej konfiguracji.

Konfigurowanie maszyn

Maszyna System operacyjny Details
Kontroler domeny systemu Windows Windows Server 2019 lub Windows Server 2022
Opracowywanie i wdrażanie raportów (WIN19) Windows Server 2019 z uruchomionym programem Visual Studio 2019 — Opracowywanie i wdrażanie raportów

— Usługi udostępniania plików, które służą jako repozytorium dla wyników raportów generowanych na bieżąco lub zaplanowanych
SQL Server Reporting Services (WIN22) Windows Server 2022 z obsługiwaną wersją serwera raportów usługi Power BI (PBIRS) 1
Maszyna dewelopera Klient systemu Windows 11 z uruchomionym programem SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, działający na SQL Server 2019 (15.x) z najnowszą skumulowaną aktualizacją (CU)

Konfigurowanie kont

Nazwa konta Details
CORPNET\cluadmin Konto użytkownika globalnego. Konto administratora lokalnego na wszystkich serwerach z systemem Windows z wyjątkiem kontrolera domeny.
CORPNET\pbirsservice Konto usługi PBIRS
CORPNET\linuxservice Konto usługi programu SQL Server (utworzone tylko dla programu SQL Server w środowisku systemu Linux)
CORPNET\reportuser Konto użytkownika globalnego używane do symulowania normalnego użytkownika usługi PBIRS

Ten przykładowy scenariusz wykorzystuje oddzielne serwery i oddzielne konta, aby zapewnić prawidłowe działanie delegacji Kerberos (czyli obsługuje scenariusze podwójnego skoku).

Konfiguracja programu SQL Server w systemie Linux

Zanim skonfigurujesz (lub przekonfigurujesz) PBIRS tak, aby używał SQL Server on Linux jako zaplecza do hostowania baz danych katalogu Report Server, upewnij się, że instancja SQL Server on Linux jest połączona z domeną.

Aby zainstalować, skonfigurować adutil i dołączyć do domeny, postępuj zgodnie z instrukcjami z Tutorial: Użyj adutil do skonfigurowania uwierzytelniania Active Directory za pomocą SQL Server on Linux.

Note

Aby uzyskać informacje o określonych pakietach w systemie RHEL 8, zobacz Bezpośrednie podłączanie systemów RHEL do usługi AD za pomocą SSSD.

Nazwy główne usługi programu SQL Server (SPN)

Przed instalacją i konfiguracją PBIRS, skonfiguruj wymagane SPN na domenie CORPNET . Możesz używać konta z uprawnieniami administratora domeny, ale każde konto z wystarczającymi uprawnieniami do tworzenia SPN wystarczy. Po utworzeniu SPN-ów skonfiguruj konta tak, aby korzystały z delegacji ograniczonej przez Kerberos.

Ten scenariusz wymaga następujących minimalnych SPN:

  • Z wiersza administracyjnego utworz SPN dla konta usługi SQL Server on Linux. Ta instancja korzysta z domyślnego portu 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Następne dwa SPN dotyczą konta usługi Serwer raportów usługi Power BI.

    setspn -S HTTP/WIN22.CORPNET.CONTOSO.COM CORPNET\pbirsservice
    setspn -S HTTP/WIN22 CORPNET\pbirsservice
    

Aby obsłużyć wymagania Kerberos dotyczące przekazywania zgłoszeń Kerberos podczas działania w ramach implementacji ograniczonej delegacji, konfigurujesz delegację, korzystając z rozszerzenia Microsoft do standardu MIT Kerberos, zgodnie z RFC 4120, oraz korzystasz z usługi User to Proxy (S4U2proxy). Ten mechanizm pozwala usługom PBIRS i SQL Server na uzyskiwanie zgłoszeń serwisowych do innych określonych usług w imieniu użytkownika.

Na przykład, gdy uwierzytelnia się reportuser za pomocą interfejsu webowego serwera PBIRS, aby zobaczyć raport, raport jest uruchamiany i musi uzyskać dostęp do danych ze źródła danych, takiego jak tabela SQL Server. Usługa SQL Server musi uzyskać zgłoszenie reportuser serwisowe Kerberos, które zostało przyznane serwerowi PBIRS podczas uwierzytelniania. Rozszerzenie S4U2proxy zapewnia niezbędne przejście protokołu do przekazania wymaganych poświadczeń bez przekazywania TGT (ticket granting ticket) użytkownika lub klucza sesji.

Aby osiągnąć ten efekt, przyznaj konto usługi PBIRS (pbirsservicew tym przykładzie) oraz konto usługi SQL Server (linuxservicew tym przykładzie) Trusted To Authenticate for Delegation bezpośrednio w domenie. Możesz przyznać to prawo na różne sposoby (na przykład ADSI Edit lub interfejs Komputer i Użytkownicy). Ten przykład wykorzystuje podwyższone polecenie PowerShell:

  • Pobierz konto usługi programu SQL Server i ustaw je tak, aby zezwalało na delegowanie. Ten krok umożliwia nie tylko delegowanie protokołu Kerberos, ale delegowanie protokołu S4U2proxy (na potrzeby przejścia protokołu) na koncie. Dwa ostatnie polecenia cmdlet stosują uprawnienia delegowania do określonych zasobów w domenie, SPN-ów dla instancji SQL Server.

    Get-ADUser -Identity linuxservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    
  • Pobierz konto usługi Serwera raportów usługi Power BI i ustaw je tak, aby zezwalało na delegowanie. Ten krok umożliwia nie tylko delegowanie protokołu Kerberos, ale delegowanie protokołu S4U2proxy (na potrzeby przejścia protokołu) na koncie. Dwa ostatnie polecenia cmdlet przypisują uprawnienia delegowania do określonych zasobów w domenie, czyli SPN-ów dla serwera SQL Server i serwera PBIRS.

    Get-ADUser -Identity pbirsservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22.CORPNET.CONTOSO.COM')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22')}
    

Serwer raportów usługi Power BI (PBIRS)

Zainstaluj PBIRS tylko w trybie konfiguracyjnym .

Natychmiast po zainstalowaniu usługi PBIRS należy skonfigurować ją tak, aby obsługiwała uwierzytelnianie Kerberos. Usługa PBIRS domyślnie obsługuje tylko uwierzytelnianie NTLM. Podczas instalacji zaktualizuj jeden z plików konfiguracyjnych PBIRS, zarówno w interfejsie użytkownika, jak i przez linię poleceń, przed zakończeniem konfiguracji PBIRS. Jeśli używasz istniejącej instalacji PBIRS, wprowadź zmiany i zrestartuj usługę PBIRS, aby zmiany weszły w życie. Plik konfiguracji to rsreportserver.config. Znajduje się na ścieżce, gdzie zainstalowany jest PBIRS. Na przykład w domyślnej instalacji usługi PBIRS plik znajduje się w następującej lokalizacji:

C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer

Użyj dowolnego edytora tekstu, aby edytować ten plik XML. Skopiuj plik przed edycją. Po otwarciu pliku wyszukaj AuthenticationTypes tag w dokumencie XML i dodaj atrybuty RSWindowsNegotiate and RSWindowsKerberos przed RSWindowsNTLM atrybutem. Przykład:

<Authentication>
<AuthenticationTypes>
    <RSWindowsNegotiate/>
    <RSWindowsKerberos/>
    <RSWindowsNTLM/>
</AuthenticationTypes>

Musisz wykonać ten krok, ponieważ SQL Server on Linux obsługuje tylko uwierzytelnianie SQL i Kerberos.

Note

Wystarczy podać RSWindowsKerberos atrybut, ale RSWindowsNegotiate jest to pomocne, jeśli chcesz standaryzować pliki konfiguracyjne PBIRS na flocie serwerów obsługujących mieszankę instancji SQL Server na Windows i Linux.

Konfiguracja interfejsu użytkownika usługi PBIRS

Po ponownym uruchomieniu usługi PBIRS po zakończeniu edycji pliku konfiguracji można przejść do pozostałych opcji konfiguracji usługi PBIRS, takich jak ustawienie konta usługi opartej na domenie i nawiązanie połączenia z zdalnym programem SQL Server w wystąpieniu systemu Linux.

Konto usługi PBIRS powinno pojawić się w wystąpieniu programu SQL Server z odpowiednimi uprawnieniami. Możesz sprawdzić uprawnienia w programie SQL Server Management Studio (SSMS). W Eksploratorze Obiektów przejdź do Bezpieczeństwo > Logins, kliknij prawym przyciskiem myszy konto CORPNET\pbirsservice i wybierz pozycję Właściwości . Uprawnienia są widoczne na stronie Mapowanie użytkownika.

Na koniec dodaj reportuser je jako login do SQL Server do celów testowych. W tym przypadku wybrałeś proste podejście i dodałeś użytkownika do db_datareader stałej roli bazy danych w dwóch bazach użytkowników: AdventureWorks oraz AdventureWorksDW.

Po wdrożeniu raportów

Jeśli musisz skonfigurować subskrypcje raportów po wdrożeniu raportów, dobrym rozwiązaniem jest skonfigurowanie poświadczeń osadzonych w źródłach danych usługi PBIRS. Wszystkie opcje poświadczeń działają prawidłowo, z wyjątkiem użycia osadzonych poświadczeń skonfigurowanych z opcją naśladować użytkownika przeglądającego raport. Ten krok kończy się niepowodzeniem w przypadku korzystania z poświadczeń systemu Windows z powodu ograniczenia w implementacji programu SQL Server w systemie Linux, co sprawia, że personifikacja jest trudniejsza.