Condividi tramite


Amministrare un database del server di report (modalità nativa SSRS)

In una distribuzione di Reporting Services vengono usati due database relazionali di SQL Server per l'archiviazione interna. Per impostazione predefinita, i database sono denominati ReportServer e ReportServerTempdb. ReportServerTempdb è creato con il database primario del server di report e viene utilizzato per l'archiviazione di dati temporanei, informazioni sulla sessione e report memorizzati nella cache.

In Reporting Services l'amministrazione del database include le attività di backup e ripristino dei database del server di report. Le attività includono anche la gestione delle chiavi di crittografia usate per crittografare e decrittografare i dati sensibili.

In SQL Server sono disponibili vari strumenti per l'amministrazione dei database del server di report.

  • È possibile usare SQL Server Management Studio, i comandi Transact-SQL o le utilità del prompt dei comandi del database per:

    • Backup e ripristino dei database del server di report
    • Spostamento del database del server di report
    • Recupero del database del server di report

    Per altre informazioni, vedere Spostamento di database del server di report in un altro computer (modalità nativa SSRS).

  • Per copiare il contenuto del database esistente in un altro database del server di report, è possibile collegare una copia di un database del server di report e utilizzarla con una diversa istanza del server di report. In alternativa, è possibile creare ed eseguire uno script che utilizza le chiamate SOAP per ricreare il contenuto del server di report in un nuovo database. È possibile usare l'utilità rs per eseguire lo script.

  • È possibile utilizzare la pagina Impostazione database nello strumento di configurazione Reporting Services per gestire le connessioni tra il server di report e il database del server di report. È anche possibile usarlo per individuare il database usato per una determinata istanza del server di report. Per altre informazioni sulla connessione del server di report al relativo database, vedere Configurare una connessione del database del server di report (Gestione configurazione del server di report).

Autorizzazioni per l'accesso a SQL Server e per il database

I database del server di report vengono utilizzati internamente dal server di report. Le connessioni al database vengono eseguite dal servizio del server di report. È possibile usare lo strumento di configurazione di Reporting Services per configurare una connessione al database del server di report.

Le credenziali per la connessione del server di report al database possono essere l'account del servizio, un account utente locale o di dominio Windows o un utente del database di SQL Server. Per stabilire una connessione, è necessario scegliere un account esistente. Reporting Services non crea account per l'utente.

Viene creato automaticamente un account di accesso di SQL Server per il database del server di report per l'account specificato.

Anche le autorizzazioni al database vengono configurate automaticamente. Lo strumento di configurazione di Reporting Services assegna l'account o l'utente del database ai ruoli Public e RSExecRole per i database del server di report. Il ruolo RSExecRole offre autorizzazioni di accesso alle tabelle di database e per l'esecuzione di stored procedure. Il ruolo RSExecRole viene creato nel database primario e msdb quando si crea il database del server di report. Il ruolo RSExecRole è un membro del ruolo db_owner per i database del server di report e consente al server di report di aggiornare lo schema per supportare un processo di aggiornamento automatico.

Convenzioni di denominazione per i database del server di report

Quando si crea il database primario, il nome del database deve seguire le regole specificate per Identificatori del database. Per il database temporaneo viene sempre utilizzato il nome del database primario del server di report, con il suffisso Tempdb. Non è possibile scegliere un nome diverso per il database temporaneo.

La ridenominazione di un database del server di report non è supportata, in quanto i database del server di report sono considerati componenti interni. La ridenominazione dei database del server di report genera errori. In particolare, se si rinomina il database primario, viene visualizzato un messaggio di errore che indica che i nomi dei database non sono sincronizzati. Se si rinomina il database ReportServerTempdb, si verifica l'errore interno seguente in un secondo momento quando si eseguono report:

"Errore interno nel server di report. Per ulteriori informazioni, vedere il log degli errori. (rsInternalError)

Il nome di oggetto ReportServerTempDB.dbo.PersistedStream non è valido."

Questo errore si verifica perché il nome ReportServerTempdb viene archiviato internamente e viene utilizzato dalle stored procedure per l'esecuzione di operazioni interne. Rinominare il database temporaneo impedisce pertanto il corretto funzionamento delle stored procedure.

Nel database del server di report non è possibile attivare l'isolamento dello snapshot.

Nel database del server di report non è possibile attivare l'isolamento dello snapshot. Se l'isolamento dello snapshot è attivato, viene visualizzato l'errore seguente: "Il report selezionato non è pronto per la visualizzazione. Il rendering del report è ancora in corso oppure non è disponibile uno snapshot del report".

Se non si attiva intenzionalmente l'isolamento dello snapshot, è probabile che l'attributo sia impostato da un'altra applicazione o che per il database modello sia attivato l'isolamento dello snapshot, facendo in modo che tutti i nuovi database ereditino l'impostazione.

Per disattivare l'isolamento dello snapshot sul il database del server di report, avviare Management Studio, aprire una nuova finestra della query, incollare, quindi eseguire lo script seguente:

ALTER DATABASE ReportServer  
SET ALLOW_SNAPSHOT_ISOLATION OFF  
ALTER DATABASE ReportServerTempdb  
SET ALLOW_SNAPSHOT_ISOLATION OFF  
ALTER DATABASE ReportServer  
SET READ_COMMITTED_SNAPSHOT OFF  
ALTER DATABASE ReportServerTempDb  
SET READ_COMMITTED_SNAPSHOT OFF  

Informazioni sulle versioni del database

In Reporting Services non sono disponibili informazioni esplicite sulla versione del database. Tuttavia, poiché le versioni del database sono sempre sincronizzate con le versioni del prodotto, è possibile utilizzare le informazioni relative alla versione del prodotto per stabilire quando la versione del database è stata modificata. Le informazioni sulla versione del prodotto per Reporting Services sono disponibili tramite le informazioni sulla versione di file contenute nei file di log, nelle intestazioni delle chiamate SOAP e quando ci si connette all'URL del server di report, ad esempio quando si apre un browser su https://localhost/reportserver.