Udostępnij za pośrednictwem


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 — Linux SQL Server Reporting Services (2019 i nowsze)

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.

Warunki wstępne

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

Konfigurowanie maszyn

Maszyna System operacyjny Szczegóły
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 na żądanie 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 z uruchomionym programem SQL Server 2019 (15.x) z najnowszą aktualizacją CU

Konfigurowanie kont

Nazwa konta Szczegóły
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

W tym przykładowym scenariuszu są używane oddzielne serwery i oddzielne konta, aby upewnić się, że delegowanie protokołu Kerberos działa prawidłowo (czyli obsługiwane są scenariusze podwójnego przeskoku).

Konfiguracja programu SQL Server w systemie Linux

Przed kontynuowaniem konfiguracji (lub rekonfiguracji) usługi PBIRS do używania programu SQL Server w systemie Linux jako zaplecza do hostowania baz danych katalogu serwera raportów upewnij się, że program SQL Server w wystąpieniu systemu Linux został przyłączony do domeny.

Możesz zainstalować i skonfigurować adutiloraz dołączyć do domeny, postępując zgodnie z instrukcjami w Samouczku: Użycie adutil do konfigurowania uwierzytelniania Active Directory z SQL Server w systemie Linux.

Notatka

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 zainstalowaniem i skonfigurowaniem usługi PBIRS należy skonfigurować wymagane nazwy SPN w domenie CORPNET. W tym przypadku można użyć użytkownika z uprawnieniami administratora domeny, ale każdy użytkownik mający wystarczające uprawnienia do utworzenia nazw SPN jest wystarczający. Po utworzeniu SPN, konta wymagają skonfigurowania do używania ograniczonego delegowania Kerberos.

Oto minimalne wymagane SPN dla tego scenariusza:

  • Za pomocą wiersza polecenia administracyjnego utwórz nazwę SPN dla programu SQL Server na koncie usługi systemu Linux. To wystąpienie używa 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 Power BI Report Server.

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

Aby obsłużyć wymagania protokołu Kerberos dotyczące przekazywania biletów Protokołu Kerberos, podczas działania w ramach implementacji ograniczonego delegowania skonfigurujemy delegowanie przy użyciu rozszerzenia firmy Microsoft do standardu PROTOKOŁU Kerberos mit określonego w RFC 4120i użyjemy usługi dla użytkownika do serwera proxy (S4U2proxy). Ten mechanizm umożliwia usłudze PBIRS i usłudze SQL Server uzyskiwanie biletów usług do innych określonych usług w imieniu użytkownika.

Na przykład gdy reportuser uwierzytelnia się za pomocą interfejsu internetowego serwera PBIRS w celu wyświetlenia raportu, raport jest wykonywany i musi uzyskiwać dostęp do danych ze źródła danych, takiego jak tabela programu SQL Server. Usługa SQL Server musi uzyskać bilet usługi reportuser Kerberos, który został przyznany podczas procesu uwierzytelniania na serwerze PBIRS. Rozszerzenie S4U2proxy zapewnia niezbędny proces przejścia protokołu, który pozwala na przekazanie wymaganych poświadczeń bez potrzeby przekazywania biletu TGT użytkownika ani klucza sesji użytkownika.

Aby to osiągnąć, w domenie należy przyznać kontu usługi PBIRS (pbirsservice w tym przykładzie) oraz kontu usługi SQL Server (linuxservice w tym przykładzie) prawo Zaufane do uwierzytelniania dla delegowania. Istnieje wiele sposobów udzielenia tego prawa (tj. edytor ADSI, interfejs użytkownika komputerów i użytkowników, itp.). W tym przykładzie użyjemy polecenia programu PowerShell z podwyższonym poziomem uprawnień:

  • 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 do delegowania do określonych zasobów w domenie, SPN 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)

PBIRS powinien być zainstalowany w konfiguracji tylko w trybie.

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 procesu instalacji należy zaktualizować jeden z plików konfiguracji usługi PBIRS przed ukończeniem procesu konfiguracji usługi PBIRS w interfejsie użytkownika lub za pomocą wiersza polecenia. Jeśli używasz istniejącej instalacji usługi PBIRS, nadal musisz wykonać zmiany, a usługa PBIRS musi zostać uruchomiona ponownie, aby obowiązywać. Plik konfiguracji to rsreportserver.config. Znajduje się on w ścieżce, w której zainstalowano serwer 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

Ten plik XML można edytować w dowolnym edytorze tekstów. Pamiętaj, aby przed edycją utworzyć kopię pliku. Po otwarciu pliku wyszukaj tag AuthenticationTypes w dokumencie XML i dodaj atrybuty RSWindowsNegotiate i RSWindowsKerberos przed atrybutem RSWindowsNTLM. Na przykład:

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

Ten krok jest wymagany, ponieważ program SQL Server w systemie Linux obsługuje tylko uwierzytelnianie SQL i Kerberos.

Notatka

Musimy tylko uwzględnić atrybut RSWindowsKerberos, ale użycie RSWindowsNegotiate jest przydatne, jeśli pożądana jest standaryzacja plików konfiguracyjnych PBIRS w całej flocie serwerów obsługujących kombinację instancji SQL Server na systemach 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 mapowania użytkowników.

Na koniec możemy dodać reportuser jako identyfikator logowania w programie SQL Server na potrzeby testowania. W tym przypadku zabraliśmy łatwy przycisk i dodaliśmy użytkownika do roli db_datareader w dwóch bazach danych użytkowników: AdventureWorks i 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.