Condividi tramite


Configurare i database del catalogo Server di report di Power BI per SQL Server in 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

Computer Sistema operativo Dettagli
Controller di dominio Windows Windows Server 2019 o Windows Server 2022
Report su sviluppo e distribuzione (WIN19) Windows Server 2019 che esegue Visual Studio 2019 - Report su sviluppo e distribuzione

- Servizi di condivisione file da usare come repository per l'output del report pianificato o basato sulla richiesta
SQL Server Reporting Services (WIN22) Windows Server 2022, che esegue una versione supportata di Server di report di Power BI (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 dell'entità 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 del nome SPN, gli account devono essere configurati per l'uso della delega vincolata Kerberos.

Ecco i nomi SPN minimi necessari per questo scenario:

  • Usando un prompt dei comandi amministrativo, creare il nome SPN per l'account del servizio SQL Server in 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 nomi SPN successivi sono destinati all'account del servizio Server di report di Power BI.

    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 esegue l'autenticazione reportuser con 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 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, Computer and interfaccia utente e così via). 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 la delega S4U2proxy (per la transizione del protocollo) nell'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')}
    
  • Ottenere l'account del servizio Server di report di Power BI e impostarlo per consentire la delega. Questo passaggio abilita non solo la delega Kerberos, ma la delega S4U2proxy (per la transizione del protocollo) nell'account. I due cmdlet finali applicano l'autorità di delega a risorse specifiche nel dominio, i nomi SPN per il server SQL Server e 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')}
    

Server di report di Power BI (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 Mapping utente.

Infine, è possibile aggiungere reportuser come account di accesso in SQL Server a scopo di test. In questo caso, è stato preso il pulsante semplice e l'utente è stato aggiunto al ruolo db_datareader all'interno di due database utente: AdventureWorks e AdventureWorksDW.

Dopo la distribuzione dei report

Se è necessario configurare le sottoscrizioni report dopo la relativa distribuzione, è 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 la rappresentazione dell'utente che visualizza l'opzione del report . Questo passaggio ha esito negativo quando si usano le credenziali di Windows, a causa di una limitazione all'interno dell'implementazione di SQL Server in Linux che rende più difficile la rappresentazione.