Freigeben über


Konfigurieren von Power BI-Berichtsserver Katalogdatenbanken für SQL Server für Linux

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

In diesem Artikel wird erläutert, wie Sie die Power BI-Berichtsserver-Katalogdatenbank (PBIRS) für SQL Server für Linux installieren und konfigurieren.

Voraussetzungen

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

Konfigurieren der Computer

Computer Betriebssystem Details
Windows-Domänencontroller Windows Server 2019 oder Windows Server 2022
Entwicklung und Bereitstellung (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
SQL Server Reporting Services (WIN22) Windows Server 2022 mit einer unterstützten Version von Power BI-Berichtsserver (PBIRS) 1
Entwicklercomputer Windows 11-Client, ausgeführt mit SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server mit SQL Server 2019 (15.x) mit dem neuesten 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

In diesem Beispielszenario werden getrennte Server und getrennte Konten verwendet, um sicherzustellen, dass die Kerberos-Delegierung ordnungsgemäß funktioniert (d. h. Double-Hop-Szenarien werden gehandhabt).

SQL Server unter Linux – Konfiguration

Bevor Sie mit der Konfiguration (oder Neukonfiguration) von PBIRS fortfahren, um SQL Server für Linux als Back-End zum Hosten der Berichtsserverkatalogdatenbanken zu verwenden, stellen Sie sicher, dass die SQL Server für Linux-Instanz mit der Domäne verbunden wurde.

Sie können adutil installieren und konfigurieren und der Domäne beitreten, indem Sie den Anweisungen im Tutorial: Verwenden Sie adutil, um die Active Directory-Authentifizierung mit SQL Server für Linux zu konfigurieren folgen.

Hinweis

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, müssen Sie die erforderlichen SPNs auf der CORPNET-Domäne konfigurieren. In diesem Fall kann ein Benutzer mit Domänenadministratorberechtigungen verwendet werden, aber jeder Benutzer mit ausreichenden Berechtigungen zur Erstellung von SPNs ist ausreichend. Nach der SPN-Erstellung müssen die Konten so konfiguriert werden, dass die eingeschränkte Kerberos-Delegierung verwendet wird.

Hier sind die minimal erforderlichen SPNs für dieses Szenario:

  • Erstellen Sie über eine administrative Eingabeaufforderung den SPN für das SQL Server on Linux-Dienstkonto. 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 die Weiterleitung von Kerberos-Tickets zu behandeln, konfigurieren wir bei der Verwendung einer eingeschränkten Delegierungsimplementierung die Delegierung mithilfe der Erweiterung von Microsoft zum MIT Kerberos-Standard, wie in RFC 4120 angegeben, und verwenden den Dienst für Benutzer-zu-Proxy (S4U2proxy). Dieser Mechanismus ermöglicht es dem PBIRS-Dienst und dem SQL Server-Dienst, Diensttickets für andere angegebene Dienste im Auftrag eines Benutzers abzurufen.

Wenn sich der reportuser beispielsweise bei der Webschnittstelle 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-Dienstticket abrufen, das während des Authentifizierungsprozesses an den PBIRS-Server gewährt wurde. Die S4U2proxy-Erweiterung stellt den erforderlichen Protokollübergang bereit, um die erforderlichen Anmeldeinformationen zu übergeben, ohne das TGT (Ticket-Zuweisungsticket) des Benutzers oder den Sitzungsschlüssel des Benutzers weiterleiten zu müssen.

Um dies zu erreichen, müssen das PBIRS-Dienstkonto (pbirsservice in diesem Beispiel) und das SQL Server-Dienstkonto (linuxservice in diesem Beispiel) in der Domäne die Berechtigung Vertrauenswürdige Authentifizierung für Delegierung gewährt werden. Es gibt mehrere Möglichkeiten, dieses Recht zu gewähren (d. h. ADSI-Bearbeitung, Computer- und Benutzer-UI usw.). In diesem Beispiel wird ein PowerShell-Befehl mit erhöhten Rechten verwendet:

  • 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 letzten beiden Cmdlets wenden die Delegierungsautorität auf bestimmte Ressourcen in der Domäne an, die SPNs für den SQL Server- und 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)

PBIRS sollte nur im Konfigurationsmodus installiert werden.

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 des Installationsprozesses müssen Sie eine der PBIRS-Konfigurationsdateien aktualisieren, bevor Sie den PBIRS-Konfigurationsprozess entweder in der Benutzeroberfläche oder über die Befehlszeile abschließen. Wenn Sie eine vorhandene PBIRS-Installation verwenden, müssen Sie die Bearbeitungen dennoch ausführen, und der PBIRS-Dienst muss neu gestartet werden, um wirksam zu werden. Die Konfigurationsdatei ist rsreportserver.config. Es befindet sich im Pfad, in dem PBIRS installiert wurde. Bei einer Standardinstallation von PBIRS befindet sich die Datei z. B. an folgendem Speicherort:

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

Diese XML-Datei kann in einem beliebigen Text-Editor bearbeitet werden. Denken Sie daran, vor der Bearbeitung eine Kopie der Datei zu erstellen. Sobald Sie die Datei geöffnet haben, suchen Sie im XML-Dokument nach dem AuthenticationTypes-Tag und fügen die Attribute RSWindowsNegotiate und RSWindowsKerberos vor dem RSWindowsNTLM-Attribut ein. Zum Beispiel:

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

Dieser Schritt ist erforderlich, da SQL Server für Linux nur die SQL- und Kerberos-Authentifizierung unterstützt.

Hinweis

Wir müssen nur das RSWindowsKerberos-Attribut einfügen, aber die Verwendung von RSWindowsNegotiate ist hilfreich, wenn PBIRS-Konfigurationsdateien in einer Flotte von Servern standardisiert werden sollen, die eine Mischung aus Windows- und Linux-SQL-Server-Instanzen unterstützen.

PBIRS Benutzeroberfläche-Konfiguration

Sobald der PBIRS-Dienst nach der Bearbeitung der Konfigurationsdatei neu gestartet wurde, können Sie mit den verbleibenden PBIRS-Konfigurationsoptionen fortfahren, z. B. mit dem Einrichten des domänenbasierten Dienstkontos und dem Herstellen einer Verbindung mit der entfernten SQL Server on Linux-Instanz.

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. Navigieren Sie in Objekt-Explorer zu Sicherheits>-anmeldungen, klicken Sie mit der rechten Maustaste auf das CORPNET\pbirsservice-Konto, und wählen Sie Eigenschaften aus. Die Berechtigungen sind auf der Seite Benutzerzuordnung sichtbar.

Schließlich können wir das reportuser als Anmeldung für Testzwecke auf dem SQL Server hinzufügen. In diesem Fall haben wir die einfache Schaltfläche verwendet und den Benutzer der Rolle db_datareader in zwei Benutzerdatenbanken hinzugefügt: AdventureWorks und AdventureWorksDW.

Nachdem Berichte bereitgestellt wurden

Wenn Sie Berichtsabonnements nach der Bereitstellung von Berichten einrichten müssen, 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.