Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op: SQL Server 2019 (15.x) en latere versies op Linux
SQL Server Reporting Services (2019 en latere versies)
In dit artikel wordt uitgelegd hoe u de catalogusdatabase van Power BI Report Server (PBIRS) voor SQL Server op 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 |
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, 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\linuxserviceDe 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 TGT (ticket granting ticket) of de sessiesleutel van de gebruiker door te sturen.
Om dit resultaat te bereiken, geef je het PBIRS-serviceaccount (pbirsservicein dit voorbeeld) en het SQL Server-serviceaccount (linuxservicein dit voorbeeld) het recht Trusted To Authenticate for Delegat in het domein. Je kunt dit recht op meerdere manieren verlenen (bijvoorbeeld ADSI Edit of de Computer and Users UI). 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. 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)
Installeer PBIRS in alleen configuratiemodus .
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 de 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
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-attributen RSWindowsKerberos toe vóór het RSWindowsNTLM attribuut. Voorbeeld:
<Authentication>
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsKerberos/>
<RSWindowsNTLM/>
</AuthenticationTypes>
Je moet deze stap voltooien omdat SQL Server on Linux alleen SQL- en Kerberos-authenticatie ondersteunt.
Note
Je hoeft alleen het RSWindowsKerberos attribuut 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 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.
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.