Konfigurera Power BI-rapportserverkatalogdatabaser för SQL Server i Linux

Gäller för: SQL Server 2019 (15.x) och senare versioner på Linux SQL Server Reporting Services (2019 och senare versioner)

Den här artikeln förklarar hur man installerar och konfigurerar Power BI Report Server (PBIRS) katalogdatabaser för SQL Server on Linux.

Förutsättningar

I den här artikeln använder exemplen domänen CORPNET.CONTOSO.COMoch följande konfiguration.

Konfigurera datorer

Maskin Operativsystem Detaljer
Windows-domänkontrollant Windows Server 2019 eller Windows Server 2022
Rapportutveckling och distribution (WIN19) Windows Server 2019, som kör Visual Studio 2019 – Rapportera utveckling och distribution

– Filresurstjänster som ska fungera som en lagringsplats för efterfrågedrivna eller schemalagda rapportutdata
Power BI Report Server (WIN22) Windows Server 2022, som kör en stödd version av Power BI Report Server (PBIRS)
Utvecklardator Windows 11-klient som kör SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, kör SQL Server 2019 (15.x) med den senaste kumulativa uppdateringen (CU)

Konfigurera konton

Kontonamn Detaljer
CORPNET\cluadmin Globalt användarkonto. Lokalt administratörskonto på alla Windows-servrar förutom domänkontrollanten.
CORPNET\pbirsservice PBIRS-tjänstkonto
CORPNET\linuxservice SQL Server-tjänstkonto (skapas bara för SQL Server i Linux-miljön)
CORPNET\reportuser Globalt användarkonto som används för att simulera en normal användare av PBIRS

Detta exempelscenario använder separata servrar och separata konton för att säkerställa att Kerberos-delegering fungerar korrekt (det vill säga att det hanterar dubbelhopp-scenarier).

SQL Server i Linux-konfiguration

Innan du konfigurerar (eller omkonfigurerar) PBIRS för att använda SQL Server on Linux som backend för att hosta Report Server-katalogdatabaserna, se till att SQL Server on Linux-instansen är ansluten till domänen.

För att installera, konfigurera adutil och ansluta till domänen, följ instruktionerna i Tutorial: Använd adutil för att konfigurera služba Active Directory-autentisering med SQL Server on Linux.

Note

Information om specifika paket på RHEL 8 finns i Ansluta RHEL-system direkt till AD med SSSD-.

SQL Server-tjänstens huvudnamn (SPN)

Innan du installerar och konfigurerar PBIRS, konfigurera de nödvändiga SPN:arna på domänen CORPNET . Du kan använda ett konto med domänadministratörsrättigheter, men vilket konto som helst med tillräckliga behörigheter för att skapa SPN:er räcker. Efter att du skapat SPN:arna, konfigurera kontona att använda Kerberos-begränsad delegering.

Detta scenario kräver följande minsta SPN:

  • Från en administrativ kommandoprompt, skapa SPN för SQL Server on Linux-tjänstekontot. Denna instans använder standardporten 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • De följande två SPN:erna gäller tjänstkontot för Power BI-rapportservern.

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

För att hantera Kerberos-kraven för vidarebefordran av Kerberos-ärenden när man arbetar inom en begränsad delegering, konfigurerar du delegeringen genom att använda Microsoft:s tillägg till MIT Kerberos-standarden, som specificeras i RFC 4120, och använder Service for User to Proxy (S4U2proxy). Denna mekanism gör det möjligt för PBIRS-tjänsten och SQL Server-tjänsten att erhålla serviceärenden till andra specificerade tjänster på uppdrag av en användare.

Till exempel, när rapporten reportuser autentiseras med PBIRS-serverns webbgränssnitt för att se en rapport, körs rapporten och måste komma åt data från en datakälla som en SQL Server-tabell. SQL Server-tjänsten måste erhålla Kerberos-serviceticketetreportuser, som beviljades PBIRS-servern under autentiseringen. S4U2proxy-tillägget tillhandahåller den nödvändiga protokollövergången för att skicka de nödvändiga uppgifterna utan att vidarebefordra användarens ticket-granting ticket (TGT) eller användarens sessionsnyckel.

För att uppnå detta resultat, ge PBIRS-tjänstekontot (pbirsservicei detta exempel) och SQL Server-tjänstekontot (linuxservicei detta exempel) rätt för Trusted To Authenticate for Delegation i domänen. Du kan ge denna rätt på flera sätt (till exempel ADSI Edit eller Computer and Users UI). Detta exempel använder ett upphöjt PowerShell-kommando:

  • Hämta SQL Server-tjänstkontot och ställ in det så att det tillåter delegering. Det här steget aktiverar inte bara Kerberos-delegering, utan även delegering av S4U2proxy (för protokollövergång) för kontot. De sista två cmdletarna tilldelar delegeringsbehörighet till specifika resurser i domänen, nämligen SPN:erna för SQL Server-instansen.

    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')}
    
  • Hämta tjänstkontot för Power BI-rapportservern och ställ in det så att det tillåter delegering. Det här steget aktiverar inte bara Kerberos-delegering, utan även delegering av S4U2proxy (för protokollövergång) för kontot. De fyra Set-ADUser cmdletarna tillämpar delegeringsauktoriteten på specifika resurser i domänen, SPN:erna för SQL Server och PBIRS-servern.

    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-rapportserver (PBIRS)

Installera PBIRS i konfigurationsläge .

Omedelbart efter installationen av PBIRS måste du konfigurera det för att stödja Kerberos-autentisering. PBIRS stöder som standard endast NTLM-autentisering. Under installationen, uppdatera en av PBIRS-konfigurationsfilerna, antingen i användargränssnittet eller via kommandoraden, innan PBIRS-konfigurationen slutförs. Om du använder en befintlig PBIRS-installation, gör ändringarna och starta om PBIRS-tjänsten för att ändringarna ska träda i kraft. Konfigurationsfilen är rsreportserver.config. Den ligger på vägen där PBIRS är installerad. Vid en standardinstallation av PBIRS finns filen till exempel på följande plats:

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

Använd vilken textredigerare som helst för att redigera denna XML-fil. Kopiera filen innan du redigerar den. Efter att du öppnat filen, sök efter taggen AuthenticationTypes i XML-dokumentet och lägg till RSWindowsNegotiate och RSWindowsKerberos elementen före elementet RSWindowsNTLM . Ett exempel:

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

Du måste genomföra detta steg eftersom SQL Server on Linux endast stöder autentisering av SQL och Kerberos.

Note

Du behöver bara inkludera elementetRSWindowsKerberos, men RSWindowsNegotiate det är hjälpsamt om du vill standardisera PBIRS-konfigurationsfiler över en flotta av servrar som stödjer en blandning av Windows- och Linux SQL Server-instanser.

Konfiguration av PBIRS-användargränssnitt

När PBIRS-tjänsten har startats om efter att redigeringarna av konfigurationsfilen är klara kan du fortsätta med de återstående PBIRS-konfigurationsalternativen, såsom att ställa in domänbaserade tjänstekontot och ansluta till den fjärranslutna SQL Server on Linux-instansen.

PBIRS-tjänstkontot bör visas i SQL Server-instansen med lämpliga behörigheter. Du kan kontrollera behörigheterna i SQL Server Management Studio (SSMS). I Object Explorer, gå till Security>Logins, högerklicka på kontot CORPNET\pbirsservice och välj Egenskaper. Behörigheterna visas på sidan Användarmappning.

Slutligen lägger du till reportuser som en inloggning på SQL Server för teständamål. I detta fall valde du det enkla tillvägagångssättet och lade till användaren i den db_datareader fasta databasrollen inom två användardatabaser: AdventureWorks och AdventureWorksDW.

När rapporter har distribuerats

Om du behöver konfigurera rapportprenumerationer när rapporter har distribuerats är det en bra idé att konfigurera inbäddade autentiseringsuppgifter i PBIRS-datakällorna. Alla alternativ för autentiseringsuppgifter fungerar korrekt, förutom när man använder alternativet med inbäddade autentiseringsuppgifter konfigurerade med personifiera användaren som visar rapporten. Det här steget misslyckas när du använder Windows-autentiseringsuppgifter på grund av en begränsning i SQL Server på Linux-implementeringen som gör personifiering svårare.