Dela via


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

gäller för: SQL Server 2019 (15.x) och senare – Linux SQL Server Reporting Services (2019 och senare)

I den här artikeln beskrivs hur du installerar och konfigurerar Power BI-rapportserverns katalogdatabas (PBIRS) för SQL Server i 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
SQL Server Reporting Services (WIN22) Windows Server 2022, som kör en version av Power BI-rapportservern (PBIRS) som stöds 1
Utvecklardator Windows 11-klient som kör SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, som kör SQL Server 2019 (15.x) med den senaste 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

Separata servrar och separata konton används i det här exempelscenariot för att säkerställa att Kerberos-delegeringen fungerar korrekt (det vill säga att dubbelhoppsscenarier hanteras).

SQL Server i Linux-konfiguration

Innan du fortsätter med konfigurationen (eller omkonfigurationen) av PBIRS för att använda SQL Server på Linux som serverdel som värd för rapportserverkatalogdatabaserna, kontrollerar du att SQL Server på Linux-instansen har anslutits till domänen.

Du kan installera och konfigurera adutiloch ansluta till domänen genom att följa anvisningarna i Självstudie: Använd adutil för att konfigurera Active Directory-autentisering med SQL Server på Linux.

Not

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 måste du konfigurera nödvändiga SPN på CORPNET-domänen. En användare med domänadministratörsbehörighet kan användas i det här fallet, men alla användare med tillräcklig behörighet för att skapa SPN räcker. När SPN har skapats måste kontona konfigureras för att använda Kerberos-begränsad delegering.

Här är de minsta nödvändiga SPN:erna för det här scenariot:

  • Skapa SPN för SQL Server på Linux-tjänstkontot med hjälp av en administrativ kommandotolk. Den här instansen 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-biljetter, när vi arbetar inom en begränsad delegeringsimplementering, konfigurerar vi delegering med Microsofts tillägg till MIT Kerberos-standarden enligt RFC 4120och använder Service for User to Proxy (S4U2proxy). Med den här mekanismen kan PBIRS-tjänsten och SQL Server-tjänsten hämta tjänstbiljetter till andra angivna tjänster för en användares räkning.

När reportuser till exempel autentiseras med PBIRS-serverns webbgränssnitt för att visa 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 hämta reportuser Kerberos-tjänstbiljetten, som beviljades under autentiseringsprocessen till PBIRS-servern. S4U2proxy-tillägget tillhandahåller den nödvändiga protokollövergången för att kunna skicka de nödvändiga autentiseringsuppgifterna utan att behöva vidarebefordra användarens TGT (biljettbeviljande biljett) eller användarens sessionsnyckel.

För att uppnå detta måste PBIRS-tjänstkontot (pbirsservice i det här exemplet) och SQL Server-tjänstkontot (linuxservice i det här exemplet) beviljas rätten Betrodd att autentisera för delegering i domänen. Det finns flera sätt att bevilja den här rättigheten (dvs. ADSI-redigering, dator- och användargränssnitt osv.). Vi använder ett upphöjd PowerShell-kommando i det här exemplet:

  • 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 två sista cmdletarna tillämpar delegeringsbehörighet på specifika resurser i domänen, nämligen 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)

PBIRS bör installeras endast i konfiguration och lä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 installationsprocessen måste du uppdatera en av PBIRS-konfigurationsfilerna innan du slutför PBIRS-konfigurationsprocessen, antingen i användargränssnittet eller via kommandoraden. Om du använder en befintlig PBIRS-installation måste du fortfarande utföra redigeringarna och PBIRS-tjänsten måste startas om för att börja gälla. Konfigurationsfilen är rsreportserver.config. Det befinner sig i installationsvägen där PBIRS installerades. Vid en standardinstallation av PBIRS finns filen till exempel på följande plats:

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

Den här XML-filen kan redigeras i valfri textredigerare. Kom ihåg att göra en kopia av filen innan du redigerar den. När du har öppnat filen söker du efter taggen AuthenticationTypes i XML-dokumentet och lägger till attributen RSWindowsNegotiate och RSWindowsKerberos före attributet RSWindowsNTLM. Till exempel:

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

Det här steget krävs eftersom SQL Server på Linux endast stöder SQL- och Kerberos-autentisering.

Not

Vi behöver bara ta med attributet RSWindowsKerberos, men det är bra att använda RSWindowsNegotiate om du vill standardisera PBIRS-konfigurationsfiler över en uppsättning servrar som stöder 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 konfigurationsfilredigeringarna har slutförts kan du fortsätta med de återstående PBIRS-konfigurationsalternativen, till exempel att ange det domänbaserade tjänstkontot och ansluta till fjärr-SQL Server på 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 navigerar du till Security > Logins, högerklickar på CORPNET\pbirsservice-kontot och väljer Egenskaper. Behörigheterna visas på sidan Användarmappning.

Slutligen kan vi lägga till reportuser som en inloggning på SQL Server i testsyfte. I det här fallet valde vi den enkla vägen och lade till användaren i rollen db_datareader i 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.