Configurare i database del catalogo del server di report Power BI per SQL Server su Linux.
Si applica a: SQL Server 2019 (15.x) e versioni successive - Linux
SQL Server Reporting Services (2019 e versioni successive)
Questo articolo illustra come installare e configurare il database del catalogo Server di report di Power BI (PBIRS) per SQL Server in Linux.
Prerequisiti
In questo articolo, gli esempi usano il dominio CORPNET.CONTOSO.COM
e la configurazione seguente.
Configurare il computer
Macchina | Sistema operativo | Dettagli |
---|---|---|
Controller di dominio Windows | Windows Server 2019 o Windows Server 2022 | |
Sviluppo e implementazione dei report (WIN19 ) |
Windows Server 2019 che esegue Visual Studio 2019 | - Sviluppo e distribuzione dei report - Servizi di condivisione file da usare come repository per i risultati dei report pianificati o basati sulla domanda |
SQL Server Reporting Services (WIN22 ) |
Windows Server 2022, che esegue una versione supportata di Power BI Report Server (PBIRS) 1 | |
Computer per sviluppatori | Client Windows 11 che esegue SQL Server Management Studio (SSMS) | |
SQL Server 2019 (rhel8test ) |
Red Hat Enterprise Linux (RHEL) 8.x Server, che esegue SQL Server 2019 (15.x) con CU più recente |
Configurare gli account
Account name | Dettagli |
---|---|
CORPNET\cluadmin |
Account utente globale Account amministratore locale in tutti i server Windows, ad eccezione del controller di dominio. |
CORPNET\pbirsservice |
Account del servizio PBIRS |
CORPNET\linuxservice |
Account del servizio SQL Server (creato solo per l'ambiente SQL Server in Linux) |
CORPNET\reportuser |
Account utente globale usato per simulare un normale utente di PBIRS |
In questo scenario di esempio vengono usati server e account separati per garantire il corretto funzionamento della delega Kerberos, ovvero la gestione di scenari a doppio hop.
Configurazione di SQL Server in Linux
Prima di procedere con la configurazione (o la riconfigurazione) di PBIRS per usare SQL Server in Linux come back-end per l’hosting dei database del catalogo del server di report, assicurarsi che l'istanza di SQL Server in Linux sia stata unita al dominio.
È possibile installare e configurare adutil e unire il dominio seguendo le istruzioni riportate in Esercitazione: Usare adutil per configurare l'autenticazione di Active Directory con SQL Server in Linux.
Nota
Per informazioni su pacchetti specifici in RHEL 8, vedere Connessione dei sistemi RHEL direttamente in Active Directory tramite SSSD.
Nomi principali del servizio (SPN) per SQL Server
Prima di installare e configurare PBIRS, è necessario configurare i nomi SPN necessari nel dominio CORPNET
. In questo caso può essere usato un utente con privilegi di amministratore di dominio, ma qualsiasi utente con autorizzazioni sufficienti per creare nomi SPN è sufficiente. Dopo la creazione dello SPN, gli account devono essere configurati per utilizzare la delega Kerberos vincolata.
Ecco i nomi SPN minimi necessari per questo scenario:
Usando un prompt dei comandi amministrativo, creare l'SPN per l'account del servizio SQL Server su Linux. Questa istanza usa la porta predefinita 1433:
setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
I due SPN successivi sono destinati all'account del servizio Power BI Report Server.
setspn -S HTTP/WIN22.CORPNET.CONTOSO.COM CORPNET\pbirsservice setspn -S HTTP/WIN22 CORPNET\pbirsservice
Per gestire i requisiti Kerberos per l'inoltro dei ticket Kerberos, quando si opera all'interno di un'implementazione di delega vincolata, si configura la delega usando l'estensione di Microsoft allo standard Kerberos MIT, come specificato in RFC 4120 e si usa il servizio per l'utente al proxy (S4U2proxy). Questo meccanismo consente al servizio PBIRS e al servizio SQL Server di ottenere ticket di servizio per altri servizi specificati per conto di un utente.
Ad esempio, quando reportuser
si autentica tramite l'interfaccia web del server PBIRS per visualizzare un report, il report viene eseguito e deve accedere ai dati da un'origine dati, come una tabella di un SQL Server. Il servizio SQL Server deve ottenere il ticket di servizio Kerberos reportuser
, concesso durante il processo di autenticazione al server PBIRS. L'estensione S4U2proxy fornisce la transizione del protocollo necessaria per passare le credenziali necessarie senza dover inoltrare il ticket TGT (ticket granting ticket) dell'utente o la chiave di sessione dell'utente.
Per ottenere questo risultato, all'account del servizio PBIRS (pbirsservice
in questo esempio) e all'account del servizio SQL Server (linuxservice
in questo esempio) deve essere concesso il diritto Trusted To Authenticate for Delegation nel dominio. Esistono diversi modi per concedere questo diritto (ad esempio, ADSI Edit, l'interfaccia utente di computer e utenti, eccetera). In questo esempio viene usato un comando di PowerShell con privilegi elevati:
Ottenere l'account del servizio SQL Server e impostarlo per consentire la delega. Questo passaggio abilita non solo la delega Kerberos, ma anche la delega S4U2proxy (utilizzata per la transizione del protocollo) sull'account. I due cmdlet finali applicano l'autorità di delega a risorse specifiche nel dominio, i nomi SPN per l'istanza di SQL Server.
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')}
Ottieni l'account del servizio Power BI Report Server e impostalo per consentire la delega. Questo passaggio abilita non solo la delega Kerberos, ma anche la delega S4U2proxy (necessaria per la transizione del protocollo) sull'account. I due cmdlet finali applicano l'autorità di delega a risorse specifiche nel dominio, gli SPN per il server SQL Server e il server PBIRS.
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 deve essere installato in modalità di sola configurazione.
Subito dopo l'installazione di PBIRS, è necessario configurarlo per supportare l'autenticazione Kerberos. PBIRS per impostazione predefinita supporta solo l'autenticazione NTLM. Durante il processo di installazione, è necessario aggiornare uno dei file di configurazione PBIRS prima di completare il processo di configurazione PBIRS, nell'interfaccia utente o tramite la riga di comando. Se si usa un'installazione PBIRS esistente, è comunque necessario eseguire le modifiche e il servizio PBIRS deve essere riavviato per renderle efficaci. Il file di configurazione è: rsreportserver.config
. Si trova nel percorso in cui è stato installato PBIRS. Ad esempio, in un'installazione predefinita di PBIRS, il file si trova nel percorso seguente:
C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer
Questo file XML può essere modificato in qualsiasi editor di testo. Ricordarsi di creare una copia del file prima della modifica. Dopo aver aperto il file, cercare il tag AuthenticationTypes
all'interno del documento XML e aggiungere gli attributi RSWindowsNegotiate
e RSWindowsKerberos
prima dell'attributo RSWindowsNTLM
. Ad esempio:
<Authentication>
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsKerberos/>
<RSWindowsNTLM/>
</AuthenticationTypes>
Questo passaggio è obbligatorio perché SQL Server in Linux supporta solo l'autenticazione SQL e Kerberos.
Nota
È sufficiente includere l'attributo RSWindowsKerberos
, ma l'uso di RSWindowsNegotiate
è utile se si intende standardizzare i file di configurazione PBIRS in un parco di server che supportano una combinazione di istanze di SQL Server Windows e Linux.
Configurazione dell'interfaccia utente PBIRS
Dopo aver riavviato il servizio PBIRS al termine del completamento delle modifiche al file di configurazione, è possibile procedere con le opzioni di configurazione PBIRS restanti, ad esempio l'impostazione dell'account del servizio basato su dominio e la connessione all'istanza di SQL Server in Linux remota.
L'account del servizio PBIRS deve essere visualizzato all'interno dell'istanza di SQL Server con autorizzazioni appropriate. È possibile verificare le autorizzazioni in SQL Server Management Studio (SSMS). In Esplora oggetti passare a Accessi >di sicurezza, fare clic con il pulsante destro del mouse sull'account CORPNET\pbirsservice
e selezionare Proprietà. Le autorizzazioni sono visibili nella pagina Mappatura utente.
Infine, è possibile aggiungere reportuser
come account di accesso in SQL Server a scopo di test. In questo caso, abbiamo premuto il pulsante facile e abbiamo aggiunto l'utente al ruolo db_datareader all'interno di due database utente: AdventureWorks
e AdventureWorksDW
.
Dopo la distribuzione dei report
Se è necessario configurare le sottoscrizioni di report dopo la distribuzione dei report, è consigliabile configurare le credenziali incorporate nelle origini dati PBIRS. Tutte le opzioni delle credenziali funzionano correttamente, ad eccezione dell'uso di credenziali incorporate configurate con l'opzione impersona l'utente che visualizza il report . Questo passaggio ha esito negativo quando si usano le credenziali di Windows, a causa di una limitazione nell'implementazione di SQL Server su Linux che rende più difficile l'impersonificazione.