Power BI Report Server-catalogusdatabases configureren voor SQL Server in Linux

Van toepassing op: SQL Server 2019 (15.x) en latere versies op Linux SQL Server Reporting Services (2019 en latere versies)

Dit artikel legt uit hoe je de Power BI Report Server (PBIRS) catalogusdatabases voor SQL Server on Linux installeert en configureert.

Prerequisites

In dit artikel gebruiken de voorbeelden het domein CORPNET.CONTOSO.COMen de volgende configuratie.

Machines configureren

Machine besturingssysteem Details
Windows-domeincontroller Windows Server 2019 of Windows Server 2022
Ontwikkeling en implementatie van rapporten (WIN19) Windows Server 2019 met Visual Studio 2019 - Ontwikkeling en implementatie van rapporten

- Bestandsdelingdiensten die fungeren als opslag voor vraaggestuurde of geplande rapportuitvoer
Power BI Report Server (WIN22) Windows Server 2022, draait een ondersteunde versie van Power BI Report Server (PBIRS)
Computer voor ontwikkelaars Windows 11-client met SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, draaiend op SQL Server 2019 (15.x) met de nieuwste cumulatieve update (CU)

Accounts instellen

Accountnaam Details
CORPNET\cluadmin Globale gebruikersaccount. Lokaal administratoraccount op alle Windows-servers, met uitzondering van de domeincontroller.
CORPNET\pbirsservice PBIRS-serviceaccount
CORPNET\linuxservice SQL Server-serviceaccount (alleen gemaakt voor de SQL Server in Linux-omgeving)
CORPNET\reportuser Globaal gebruikersaccount dat wordt gebruikt om een normale gebruiker van PBIRS te simuleren

Dit voorbeeldscenario gebruikt aparte servers en aparte accounts om ervoor te zorgen dat Kerberos-delegatie correct functioneert (dat wil zeggen, het behandelt double-hop scenario's).

SQL Server op Linux-configuratie

Voordat je PBIRS configureert (of herconfigureert) om SQL Server on Linux als backend te gebruiken om de Report Server-catalogusdatabases te hosten, zorg ervoor dat de SQL Server on Linux-instantie aan het domein is gekoppeld.

Om het domein te installeren, configureren adutil en joinen, volg je de instructies in Tutorial: Gebruik adutil om Active Directory-authenticatie te configureren met SQL Server on Linux.

Note

Zie RHEL-systemen rechtstreeks verbinden met AD met behulp van SSSDvoor meer informatie over specifieke pakketten op RHEL 8.

SPN's (Service Principal Names) van SQL Server

Voordat je PBIRS installeert en configureert, configureer je de vereiste SPN's op het CORPNET domein. Je kunt een account gebruiken met domeinbeheerdersrechten, maar elk account met voldoende rechten om SPN's aan te maken is voldoende. Nadat je de SPN's hebt aangemaakt, configureer je de accounts zodat ze Kerberos-beperkte delegering gebruiken.

Dit scenario vereist de volgende minimale SPN's:

  • Maak vanuit een administratieve opdrachtprompt het SPN aan voor het SQL Server on Linux-serviceaccount. Deze instantie gebruikt de standaardpoort van 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • De volgende twee SPN's zijn voor het Power BI Report Server-serviceaccount.

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

Om de Kerberos-vereisten voor het doorsturen van Kerberos-tickets te regelen bij het werken binnen een constrained delegation-implementatie, configureer je delegatie door gebruik te maken van Microsoft's extensie naar de MIT Kerberos-standaard, zoals gespecificeerd in RFC 4120, en gebruik je de Service for User to Proxy (S4U2proxy). Dit mechanisme stelt de PBIRS-service en SQL Server-service in staat om namens een gebruiker servicetickets naar andere gespecificeerde diensten te verkrijgen.

Bijvoorbeeld, wanneer de reportuser server authenticeert via de webinterface van de PBIRS-server om een rapport te bekijken, draait het rapport en moet het data benaderen uit een databron, zoals een SQL Server-tabel. De SQL Server-service moet het reportuser Kerberos-serviceticket verkrijgen, dat tijdens de authenticatie aan de PBIRS-server is toegekend. De S4U2proxy-extensie biedt de noodzakelijke protocolovergang om de vereiste inloggegevens door te geven zonder het ticket-granting ticket (TGT) of de sessiesleutel van de gebruiker door te sturen.

Om dit resultaat te bereiken, verleen je het PBIRS-serviceaccount (pbirsservice in dit voorbeeld) en het SQL Server-serviceaccount (linuxservice in dit voorbeeld) in het domein het Trusted To Authenticate for Delegation-recht. Je kunt dit recht op meerdere manieren toekennen (bijvoorbeeld via ADSI Edit of de gebruikersinterface Computer and Users). Dit voorbeeld gebruikt een verhoogde PowerShell-opdracht:

  • Haal het SQL Server-serviceaccount op en stel dit in om delegatie toe te staan. Deze stap maakt niet alleen Kerberos-delegatie mogelijk, maar ook S4U2proxy-delegatie (voor protocolovergang) op de gebruikeraccount. De laatste twee cmdlets passen de delegatiebevoegdheid toe op specifieke resources in het domein, de SPN's voor de SQL Server-instantie.

    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')}
    
  • Haal het Power BI Report Server-serviceaccount op en stel dit in om delegering toe te staan. Deze stap maakt niet alleen Kerberos-delegatie mogelijk, maar ook S4U2proxy-delegatie (voor protocolovergang) op de gebruikeraccount. De vier Set-ADUser cmdlets passen de delegatiebevoegdheid toe op specifieke bronnen in het domein, de SPN's voor de SQL Server en de 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 Report Server (PBIRS)

Installeer PBIRS in de modus Alleen configuratie.

Onmiddellijk na de installatie van PBIRS moet u deze configureren ter ondersteuning van Kerberos-verificatie. PBIRS ondersteunt standaard alleen NTLM-verificatie. Werk tijdens de installatie een van de PBIRS-configuratiebestanden bij, hetzij in de UI of via de opdrachtregel, voordat de PBIRS-configuratie wordt voltooid. Als je een bestaande PBIRS-installatie gebruikt, voer dan de bewerkingen uit en start de PBIRS-dienst opnieuw zodat de wijzigingen van kracht worden. Het configuratiebestand is rsreportserver.config. Het ligt op het pad waar PBIRS is geïnstalleerd. Bij een standaardinstallatie van PBIRS bevindt het bestand zich bijvoorbeeld op de volgende locatie:

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

Gebruik een willekeurige teksteditor om dit XML-bestand te bewerken. Kopieer het bestand voordat je het bewerkt. Nadat je het bestand hebt geopend, zoek je naar de AuthenticationTypes tag binnen het XML-document en voeg je de RSWindowsNegotiate en-elementen RSWindowsKerberos toe vóór het RSWindowsNTLM element. Voorbeeld:

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

Je moet deze stap voltooien omdat SQL Server on Linux alleen SQL- en Kerberos-authenticatie ondersteunt.

Note

Je hoeft alleen het RSWindowsKerberos element toe te voegen, maar RSWindowsNegotiate het is handig als je PBIRS-configuratiebestanden wilt standaardiseren over een vloot servers die een mix van Windows- en Linux SQL Server-instanties ondersteunen.

PBIRS UI-configuratie

Zodra de PBIRS-service is herstart nadat de configuratiebestandbewerkingen zijn voltooid, kun je verder met de resterende PBIRS-configuratieopties, zoals het instellen van het domeingebaseerde serviceaccount en het verbinden met de externe SQL Server on Linux-instantie.

Het PBIRS-serviceaccount moet worden weergegeven in het SQL Server-exemplaar met de juiste machtigingen. U kunt de machtigingen controleren in SQL Server Management Studio (SSMS). In Objectverkenner navigeer naar Security>Logins, klik met de rechtermuisknop op het CORPNET\pbirsservice account en selecteer Properties. De machtigingen zijn zichtbaar op de pagina Gebruikersmapping.

Voeg tenslotte de reportuser als login toe op de SQL Server voor testdoeleinden. In dit geval koos je voor de eenvoudige aanpak en voegde je de gebruiker toe aan de db_datareader vaste databaserol binnen twee gebruikersdatabases: AdventureWorks en AdventureWorksDW.

Nadat rapporten zijn geïmplementeerd

Als u rapportabonnementen moet instellen nadat rapporten zijn geïmplementeerd, is het verstandig om ingebedde referenties in de PBIRS-gegevensbronnen te configureren. Alle referentieopties werken correct, met uitzondering van het gebruik van ingesloten referenties die zijn geconfigureerd met de optie om de gebruiker die het rapport bekijkt na te bootsen. Deze stap mislukt wanneer u Windows-referenties gebruikt, vanwege een beperking binnen de SQL Server op Linux-implementatie die imitatie moeilijker maakt.