Inizializzazione di un server di report

In Reporting Services un server inizializzato è un server in grado di crittografare e decrittografare dati in un database del server di report. L'inizializzazione è un requisito per il funzionamento del server di report. L'inizializzazione viene eseguita al primo avvio del servizio del server di report, quando il server di report viene unito in join alla distribuzione esistente o quando vengono ricreate manualmente le chiavi come parte del processo di recupero. Per ulteriori informazioni su come e perché utilizzare le chiavi di crittografia, vedere Configurazione e gestione delle chiavi di crittografia e Archiviazione dei dati crittografati del server di report.

Le chiavi di crittografia sono basate in parte sulle informazioni sul profilo del servizio del server di report. Se si modifica l'identità utente utilizzata per l'esecuzione del servizio del server di report, è necessario aggiornare le chiavi di conseguenza. Se si utilizza lo strumento di configurazione di Reporting Services per modificare l'identità utente, questa operazione viene eseguita automaticamente.

Se per un qualche motivo l'inizializzazione ha esito negativo, il server di report restituisce un errore RSReportServerNotActivated in risposta alle richieste dell'utente e di servizio. In questo caso, potrebbe essere necessario risolvere i problemi di configurazione del sistema o del server. Per ulteriori informazioni, vedere Risoluzione degli errori di inizializzazione e delle chiavi di crittografia nella documentazione online di SQL Server.

Panoramica del processo di inizializzazione

Il processo di inizializzazione crea e archivia una chiave simmetrica utilizzata per la crittografia. La chiave simmetrica viene creata dai servizi di crittografia di Microsoft Windows e quindi utilizzata dal servizio del server di report per crittografare e decrittografare i dati. La chiave simmetrica è anch'essa crittografata con una chiave asimmetrica.

Nelle istruzioni seguenti viene descritto il processo di inizializzazione:

  1. All'avvio iniziale, il servizio del server di report legge il file RSReportServer.config per ottenere l'identificatore dell'installazione e le informazioni di connessione al database.

  2. Il servizio del server di report richiede una chiave pubblica ai servizi di crittografia. Windows crea una chiave privata e una chiave pubblica e invia la chiave pubblica al servizio del server di report.

  3. Il servizio del server di report si connette al database del server di report e archivia i valori dell'identificatore dell'installazione e della chiave pubblica.

  4. Il servizio del server di report chiama nuovamente i servizi di crittografia, questa volta per richiedere una chiave simmetrica. Windows crea la chiave simmetrica.

  5. Il servizio del server di report si connette nuovamente al database del server di report e aggiunge la chiave simmetrica ai valori dell'identificatore dell'installazione e della chiave pubblica archiviati al passaggio 3. Prima di archiviarla, il servizio del server di report utilizza la chiave pubblica per crittografare la chiave simmetrica. Dopo che la chiave simmetrica è stata archiviata, il server di report viene considerato inizializzato e può essere utilizzato.

Inizializzazione di un server di report per la distribuzione con scalabilità orizzontale

Reporting Services supporta un modello di distribuzione con scalabilità orizzontale che condivide un singolo database del server di report tra più istanze del server di report. Per unire in join una distribuzione con scalabilità orizzontale, è necessario che un server di report crei e archivi la propria copia della chiave simmetrica nel database condiviso. Sebbene i server che utilizzano il database utilizzino una sola chiave simmetrica, ogni server di report ha una propria copia della chiave. Le copie sono diversificate dal fatto che vengono crittografate in modo univoco tramite la chiave pubblica del rispettivo proprietario.

I primi passaggi del processo di inizializzazione di un server di report per la distribuzione con scalabilità orizzontale sono identici ai primi tre passaggi in cui viene descritta l'inizializzazione di una singola combinazione di server e database.

La differenza del processo di inizializzazione per una distribuzione con scalabilità orizzontale consiste nel modo in cui il server di report ottiene la chiave simmetrica. Quando il primo server viene inizializzato, ottiene la chiave simmetrica da Windows. Quando il secondo server viene inizializzato durante la configurazione per la distribuzione con scalabilità orizzontale, ottiene la chiave simmetrica dal servizio del server di report già inizializzato. La prima istanza del server di report utilizza la chiave pubblica della seconda istanza per creare una copia crittografata della chiave simmetrica per la seconda istanza del server di report. La chiave simmetrica non viene mai esposta come solo testo in nessuna fase di questo processo.

Come inizializzare un server di report

Nota

RSKeymgmt è un'applicazione console che può essere eseguita da una riga di comando in un computer che ospita un'istanza del server di report che fa già parte di una distribuzione con scalabilità orizzontale. Quando viene eseguita l'utilità, vengono specificati gli argomenti per selezionare un'istanza remota del server di report che si desidera inizializzare.

Il server di report viene inizializzato solo se esiste una corrispondenza tra l'identificatore dell'installazione e la chiave pubblica. Se la corrispondenza esiste, viene creata una chiave simmetrica che rende possibile la crittografia reversibile. Se la corrispondenza non esiste, il server di report viene disabilitato e potrebbe essere necessario applicare una chiave di backup o eliminare i dati crittografati nel caso in cui la copia di backup non sia disponibile o non sia valida. Per ulteriori informazioni sulle chiavi di crittografia utilizzate da un server di report, vedere Configurazione e gestione delle chiavi di crittografia.

Nota

È inoltre possibile utilizzare il provider WMI (Windows Management Instrumentation) di Reporting Services per inizializzare un server di report a livello di programmazione. Per ulteriori informazioni, vedere Provider WMI di Reporting Services nella documentazione online di SQL Server.

Come confermare l'inizializzazione di un server di report

Per confermare l'inizializzazione di un server di report, effettuare il ping del servizio Web ReportServer digitando http://<nomeserver>/reportserver nella finestra di comando. Se si verifica l'errore RSReportServerNotActivated, l'inizializzazione non è riuscita.