Delen via


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

van toepassing op: SQL Server 2019 (15.x) en hoger - Linux SQL Server Reporting Services (2019 en hoger)

In dit artikel wordt uitgelegd hoe u de catalogusdatabase van Power BI Report Server (PBIRS) voor SQL Server op Linux installeert en configureert.

Voorwaarden

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

Machines configureren

Machine Besturingssysteem Bijzonderheden
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
SQL Server Reporting Services (WIN22) Windows Server 2022, met een ondersteunde versie van Power BI Report Server (PBIRS) 1
Computer voor ontwikkelaars Windows 11-client met SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, die SQL Server 2019 (15.x) met de nieuwste CU draait

Accounts instellen

Accountnaam Bijzonderheden
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

In dit voorbeeldscenario worden afzonderlijke servers en afzonderlijke accounts gebruikt om ervoor te zorgen dat Kerberos-delegering goed functioneert (dat wil zeggen, scenario's met dubbele hops worden afgehandeld).

SQL Server op Linux-configuratie

Voordat u doorgaat met de configuratie (of herconfiguratie) van PBIRS om SQL Server in Linux te gebruiken als back-end voor het hosten van de rapportservercatalogusdatabases, moet u ervoor zorgen dat de SQL Server op Linux-instantie is toegevoegd aan het domein.

U kunt adutilinstalleren en configureren en lid worden van het domein. Volg de instructies in zelfstudie: Adutil gebruiken om Active Directory-verificatie te configureren met SQL Server op Linux.

Notitie

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 u PBIRS installeert en configureert, moet u de vereiste SPN's configureren op het CORPNET-domein. In dit geval kan een gebruiker met domeinbeheerdersbevoegdheden worden gebruikt, maar elke gebruiker met voldoende machtigingen voor het maken van SPN's is voldoende. Nadat de SPN is gemaakt, moeten de accounts worden geconfigureerd voor het gebruik van beperkte Kerberos-delegering.

Dit zijn de minimaal vereiste SPN's voor dit scenario:

  • Maak met behulp van een beheeropdrachtprompt de SPN voor de SQL Server in het Linux-serviceaccount. In dit exemplaar wordt de standaardpoort van 1433 gebruikt:

    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
    

Als u de Kerberos-vereisten voor het doorsturen van Kerberos-tickets wilt afhandelen, configureren we delegering met behulp van de extensie van Microsoft voor de MIT Kerberos-standaard, zoals opgegeven in RFC 4120-, en gebruiken we de Service for User to Proxy (S4U2proxy). Met dit mechanisme kunnen de PBIRS-service en de SQL Server-service service servicetickets verkrijgen voor andere opgegeven services namens een gebruiker.

Wanneer de reportuser bijvoorbeeld verifieert met de webinterface van de PBIRS-server om een rapport weer te geven, wordt het rapport uitgevoerd en heeft het toegang tot gegevens uit een gegevensbron, zoals een SQL Server-tabel. De SQL Server-service moet het reportuser Kerberos-serviceticket verkrijgen, dat tijdens het verificatieproces aan de PBIRS-server is verleend. De S4U2proxy-extensie biedt de noodzakelijke protocolovergang, zodat de vereiste referenties kunnen worden doorgegeven zonder dat het TGT (ticket verlenend ticket) of de sessiesleutel van de gebruiker moet worden doorgestuurd.

Hiervoor moeten aan het PBIRS-serviceaccount (pbirsservice in dit voorbeeld) en het SQL Server-serviceaccount (linuxservice in dit voorbeeld) het recht Vertrouwd voor authenticatie voor delegatie in het domein worden verleend. Er zijn meerdere manieren om dit recht te verlenen (dat wil zeggen, ADSI Bewerken, Computer- en Gebruikersinterface, enzovoort). In dit voorbeeld gebruiken we een PowerShell-opdracht met verhoogde bevoegdheid:

  • 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 de S4U2proxy-delegatie (voor protocoltransitie) voor het account. Met de laatste twee cmdlets wordt de delegatiebevoegdheid toegepast op specifieke resources in het domein, zoals 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)

PBIRS moet alleen in configuratie worden geïnstalleerd modus.

Onmiddellijk na de installatie van PBIRS moet u deze configureren ter ondersteuning van Kerberos-verificatie. PBIRS ondersteunt standaard alleen NTLM-verificatie. Tijdens het installatieproces moet u een van de PBIRS-configuratiebestanden bijwerken voordat u het PBIRS-configuratieproces in de gebruikersinterface of via de opdrachtregel voltooit. Als u een bestaande PBIRS-installatie gebruikt, moet u de bewerkingen nog steeds uitvoeren en moet de PBIRS-service opnieuw worden gestart om van kracht te worden. Het configuratiebestand is de rsreportserver.config. Het bevindt zich in het pad waarin 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

Dit XML-bestand kan worden bewerkt in elke teksteditor. Vergeet niet om een kopie van het bestand te maken voordat u het bewerkt. Nadat u het bestand hebt geopend, zoekt u de AuthenticationTypes tag in het XML-document en voegt u de kenmerken RSWindowsNegotiate en RSWindowsKerberos toe vóór het kenmerk RSWindowsNTLM. Bijvoorbeeld:

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

Deze stap is vereist, omdat SQL Server op Linux alleen ondersteuning biedt voor SQL- en Kerberos-verificatie.

Notitie

We hoeven alleen het kenmerk RSWindowsKerberos op te nemen, maar het gebruik van RSWindowsNegotiate is handig als het standaardiseren van PBIRS-configuratiebestanden op een reeks servers die ondersteuning bieden voor een combinatie van Windows- en Linux SQL Server-exemplaren gewenst is.

PBIRS UI-configuratie

Zodra de PBIRS-service opnieuw is opgestart nadat het bewerken van het configuratiebestand is voltooid, kunt u doorgaan met de resterende PBIRS-configuratieopties, zoals het instellen van het serviceaccount op basis van een domein en het maken van verbinding met de externe SQL Server op Linux-exemplaar.

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). Navigeer in Objectverkenner naar Security > Logins, klik met de rechtermuisknop op het CORPNET\pbirsservice-account en selecteer Eigenschappen. De machtigingen zijn zichtbaar op de pagina Gebruikersmapping.

Ten slotte kunnen we de reportuser toevoegen als een aanmelding op de SQL Server voor testdoeleinden. In dit geval hebben we de gemakkelijke optie gekozen en de gebruiker toegevoegd aan de rol db_datareader 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.