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.COM
i 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.