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.COM
och 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.