Konfigurieren von Power BI-Berichtsserver-Katalogdatenbanken unter SQL Server auf Linux

Gilt für: SQL Server 2019 (15.x) und höhere Versionen von Linux SQL Server Reporting Services (2019 und höher)

Dieser Artikel erklärt, wie man die Power BI-Berichtsserver (PBIRS) Katalogdatenbanken für SQL Server für Linux installiert und konfiguriert.

Voraussetzungen

In diesem Artikel verwenden die Beispiele die Domäne CORPNET.CONTOSO.COM und die folgende Konfiguration.

Konfigurieren der Computer

Maschine Betriebssystem Details
Windows-Domänencontroller Windows Server 2019 oder Windows Server 2022
Entwicklung und Bereitstellung von Berichten (WIN19) Windows Server 2019, mit Visual Studio 2019 - Entwicklung und Bereitstellung von Berichten

- Dateifreigabedienste, die als Repository für die bedarfsgesteuerte oder geplante Berichtsausgabe dienen
Power BI-Berichtsserver (WIN22) Windows Server 2022, mit einer unterstützten Version des Power BI-Berichtsserver (PBIRS)
Entwicklercomputer Windows 11-Client, ausgeführt mit SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, läuft mit SQL Server 2019 (15.x) und dem neuesten kumulativen Update (CU)

Konfigurieren von Konten

Kontoname Details
CORPNET\cluadmin Globales Benutzerkonto. Lokales Administratorkonto auf allen Windows-Servern mit Ausnahme des Domänencontrollers.
CORPNET\pbirsservice PBIRS-Dienstkonto
CORPNET\linuxservice SQL Server-Dienstkonto (nur für die SQL Server auf Linux-Umgebung erstellt)
CORPNET\reportuser Globales Benutzerkonto, das verwendet wird, um einen normalen Benutzer von PBIRS zu simulieren

Dieses Beispielszenario verwendet separate Server und separate Konten, um sicherzustellen, dass die Kerberos-Delegation ordnungsgemäß funktioniert (das heißt, sie behandelt Doppelhop-Szenarien).

SQL Server unter Linux – Konfiguration

Bevor Sie PBIRS so konfigurieren (oder umkonfigurieren), dass SQL Server für Linux als Backend für die Report Server-Katalogdatenbanken verwendet werden, stellen Sie sicher, dass die SQL Server für Linux-Instanz mit der Domain verbunden ist.

Um die Domain zu installieren, zu konfigurieren adutil und beizutreten, folgen Sie den Anweisungen im Tutorial: Verwenden Sie adutil, um die Active Directory-Authentifizierung mit SQL Server für Linux zu konfigurieren.

Note

Informationen zu bestimmten Paketen auf RHEL 8 finden Sie unter Verbinden von RHEL-Systemen direkt mit AD unter Verwendung von SSSD.

SQL Server-Dienstprinzipalnamen (SPNs)

Bevor Sie PBIRS installieren und konfigurieren, konfigurieren Sie die erforderlichen SPNs in der Domäne CORPNET . Du kannst ein Konto mit Domain-Admin-Rechten verwenden, aber jedes Konto mit genügend Berechtigungen zur Erstellung von SPNs reicht aus. Nachdem Sie die SPNs erstellt haben, konfigurieren Sie die Konten für die Verwendung von eingeschränkter Kerberos-Delegierung.

Dieses Szenario erfordert folgende Mindest-SPNs:

  • Erstellen Sie aus einer administrativen Eingabeaufforderung das SPN für das SQL Server für Linux-Servicekonto. Diese Instanz verwendet den Standardport von 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Die nächsten beiden SPNs gelten für das Power BI-Berichtsserver-Dienstkonto.

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

Um die Kerberos-Anforderungen für das Weiterleiten von Kerberos-Tickets innerhalb einer eingeschränkten Delegationsimplementierung zu erfüllen, konfigurieren Sie die Delegation durch die Verwendung von Microsofts Erweiterung zum MIT Kerberos-Standard, wie in RFC 4120 angegeben, und nutzen den Service for User to Proxy (S4U2proxy). Dieser Mechanismus ermöglicht es dem PBIRS-Dienst und dem SQL Server-Service, im Namen eines Benutzers Servicetickets für andere bestimmte Dienste zu erhalten.

Wenn sich beispielsweise reportuser an der Weboberfläche des PBIRS-Servers authentifiziert, um einen Bericht anzuzeigen, wird der Bericht ausgeführt und muss auf Daten aus einer Datenquelle wie einer SQL Server-Tabelle zugreifen. Der SQL Server-Dienst muss das reportuser Kerberos-Service-Ticket erhalten, das dem PBIRS-Server während der Authentifizierung gewährt wurde. Die S4U2proxy-Erweiterung bietet den notwendigen Protokollübergang, um die erforderlichen Zugangsdaten weiterzugeben, ohne das Ticket-granting Ticket (TGT) oder den Sitzungsschlüssel des Benutzers weiterzuleiten.

Um dieses Ergebnis zu erreichen, gewähren Sie dem PBIRS-Servicekonto (pbirsservicein diesem Beispiel) und dem SQL Server-Servicekonto (linuxservicein diesem Beispiel) das Recht "Trusted To Authenticate for Delegation" in der Domäne. Du kannst dieses Recht auf verschiedene Arten gewähren (zum Beispiel ADSI Edit oder die Computer- und Benutzeroberfläche). Dieses Beispiel verwendet einen erhöhten PowerShell-Befehl:

  • Rufen Sie das SQL Server-Dienstkonto auf und stellen Sie es so ein, dass es die Delegierung zulässt. Dieser Schritt ermöglicht nicht nur die Kerberos-Delegierung, sondern die S4U2proxy-Delegierung (für den Protokollübergang) auf dem Konto. Die letzten beiden Cmdlets wenden die Delegationsberechtigung auf bestimmte Ressourcen in der Domäne an, die SPNs für die SQL Server-Instanz.

    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')}
    
  • Rufen Sie das Power BI-Berichtsserver Dienstkonto ab, und legen Sie es so fest, dass Delegierung zulässig ist. Dieser Schritt ermöglicht nicht nur die Kerberos-Delegierung, sondern die S4U2proxy-Delegierung (für den Protokollübergang) auf dem Konto. Die vier Set-ADUser Cmdlets wenden die Delegationsbefugnis auf bestimmte Ressourcen in der Domäne an, die SPNs für den SQL Server und den PBIRS-Server.

    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')}
    

Power BI-Berichtsserver (PBIRS)

Installiere PBIRS nur im Konfigurationsmodus .

Unmittelbar nach der Installation von PBIRS müssen Sie sie so konfigurieren, dass die Kerberos-Authentifizierung unterstützt wird. PBIRS unterstützt standardmäßig nur die NTLM-Authentifizierung. Während der Installation aktualisieren Sie eine der PBIRS-Konfigurationsdateien, entweder in der Benutzeroberfläche oder über die Kommandozeile, bevor Sie die PBIRS-Konfiguration abschließen. Wenn Sie eine bestehende PBIRS-Installation verwenden, nehmen Sie die Änderungen vor und starten Sie den PBIRS-Dienst neu, damit die Änderungen in Kraft treten. Die Konfigurationsdatei ist rsreportserver.config. Es befindet sich auf dem Weg, auf dem PBIRS installiert ist. Bei einer Standardinstallation von PBIRS befindet sich die Datei z. B. an folgendem Speicherort:

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

Verwenden Sie einen beliebigen Texteditor, um diese XML-Datei zu bearbeiten. Kopiere die Datei, bevor du sie bearbeitest. Nachdem du die Datei geöffnet hast, suche im XML-Dokument nach dem AuthenticationTypes Tag und füge die RSWindowsNegotiate und-Elemente RSWindowsKerberos vor das RSWindowsNTLM Element hinzu. Beispiel:

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

Du musst diesen Schritt abschließen, weil SQL Server für Linux nur SQL- und Kerberos-Authentifizierung unterstützt.

Note

Du musst nur das Element RSWindowsKerberos einbauen, aber RSWindowsNegotiate es ist hilfreich, wenn du PBIRS-Konfigurationsdateien über eine Flotte von Servern standardisieren möchtest, die eine Mischung aus Windows- und Linux-SQL Server-Instanzen unterstützen.

PBIRS Benutzeroberfläche-Konfiguration

Sobald der PBIRS-Dienst nach Abschluss der Bearbeitungen der Konfigurationsdateien neu gestartet wurde, können Sie mit den verbleibenden PBIRS-Konfigurationsoptionen fortfahren, wie zum Beispiel das domainbasierte Servicekonto festlegen und sich mit der entfernten SQL Server für Linux-Instanz verbinden.

Das PBIRS-Dienstkonto sollte in der SQL Server-Instanz mit entsprechenden Berechtigungen angezeigt werden. Sie können die Berechtigungen in SQL Server Management Studio (SSMS) überprüfen. Im Objekt-Explorer navigieren Sie zuSicherheits-Logins>, klicken Sie mit der rechten Maustaste auf das CORPNET\pbirsservice Konto und wählen Sie Eigenschaften. Die Berechtigungen sind auf der Seite Benutzerzuordnung sichtbar.

Zum Schluss fügen Sie das reportuser als Login auf dem SQL Server zu Testzwecken hinzu. In diesem Fall wählst du den einfachen Ansatz und fügst den Benutzer der db_datareader festen Datenbankrolle innerhalb von zwei Benutzerdatenbanken hinzu: AdventureWorks und AdventureWorksDW.

Nachdem Berichte bereitgestellt wurden

Wenn Sie Berichtsabonnements einrichten müssen, nachdem Berichte bereitgestellt wurden, empfiehlt es sich, eingebettete Anmeldeinformationen in den PBIRS-Datenquellen zu konfigurieren. Alle Anmeldeinformationsoptionen funktionieren ordnungsgemäß, mit Ausnahme der Verwendung eingebetteter Anmeldeinformationen, die mit dem Identitätswechsel des Benutzers konfiguriert sind, der die Berichtsoption anzeigt. Dieser Schritt schlägt bei der Verwendung von Windows-Anmeldeinformationen fehl, da die Implementierung von SQL Server unter Linux eine Einschränkung aufweist, die die Identitätsfeststellung erschwert.