Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce una soluzione a un errore che si verifica dopo l'installazione delle estensioni per la creazione di report di Microsoft Dynamics CRM.
Si applica a: Microsoft Dynamics CRM 2011, Microsoft Dynamics CRM 2013
Numero KB originale: 2923525
Sintomi
Dopo l'installazione delle estensioni per la creazione di report di Microsoft Dynamics CRM, i report basati su SQL, ad esempio i report predefiniti, non vengono eseguiti all'interno di Microsoft Dynamics CRM. I file di log di SQL Server Reporting Services (SSRS) mostrano il messaggio seguente:
elaborazione!ReportServer_####!MM/GG/AAAA-HH:MM:SS:: e ERRORE: origine dati 'ORGANIZATIONUNIQUENAME': si è verificato un errore. Dettagli: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Impossibile creare una connessione all'origine dati 'ORGANIZATIONUNIQUENAME'. >--- Microsoft.ReportingServices.DataExtensions.ReportServerDataProvider.RSDPException: sono state specificate sicurezza integrata o credenziali nella stringa di connessione per l'origine dati, ma l'origine dati è configurata per l'uso di un tipo di credenziale diverso. Per utilizzare i valori nella stringa di connessione, è necessario configurare l'account di elaborazione non presidiata dei report per il server di report.
in Microsoft.ReportingServices.DataExtensions.ConnectionExtension.FailIntegratedSecurity()
in Microsoft.ReportingServices.DataExtensions.ConnectionExtension.AppendCredentials()
in Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.get_ConnectionString()
in Microsoft.ReportingServices.DataExtensions.ConnectionExtension.Open()
in Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.Open()
in Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenConnection(IProcessingDataSource dataSourceObj, DataSourceInfo dataSourceInfo, IDbConnection conn)
--- Fine dell'analisi dello stack di eccezioni interna ---
in Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenConnection(IProcessingDataSource dataSourceObj, DataSourceInfo dataSourceInfo, IDbConnection conn)
nella classe Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.HandleImpersonation(IProcessingDataSource origineDati, DataSourceInfo informazioniOrigineDati, String nomeDataset, IDbConnection connessione, Action azioneDopoImpersonificazione)
in Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenDataSourceExtensionConnection(IProcessingDataSource dataSourceObj, String connectString, DataSourceInfo dataSourceInfo, String datasetName)
in Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.OpenConnection(DataSource dataSourceObj, DataSet dataSetObj, OnDemandProcessingContext pc, DataProcessingMetrics metrics)
in Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.OpenInitialConnectionAndTransaction()
in Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.InitializeDataSource()
in Microsoft.ReportingServices.OnDemandProcessing.RuntimeAtomicDataSource.Process(Boolean fromOdp)
Annotazioni
Esamina il log di traccia del servizio Report Server per individuare il percorso dei file di log di SSRS.
Causa
L'account che esegue il servizio SSRS è un account virtuale o locale, ad esempio LocalSystem. Questi account virtuali o locali non dispongono delle autorizzazioni necessarie per eseguire query su FilteredViews. Le autorizzazioni SQL necessarie per eseguire query su FilteredViews sono un ruolo personalizzato denominato CRMReaderRole. Questo ruolo viene assegnato al gruppo di Active Directory denominato PrivReportingGroup. Durante l'installazione delle estensioni per la creazione di report, l'account del servizio SSRS viene aggiunto a PrivReportingAccount. Non è possibile aggiungere account virtuali o locali a un gruppo di Active Directory.
Risoluzione
Per risolvere il problema, seguire questa procedura:
- Eseguire il servizio SSRS nel contesto del servizio di rete. Per una maggiore sicurezza, eseguire il servizio SSRS come account del servizio gestito, un utente con privilegi limitati in Active Directory. Per modificare l'account del servizio, vedere Configurare un account del servizio (Gestione configurazione SSRS).
- Assegnare manualmente il ruolo CRMReaderRole all'account che esegue il servizio SSRS in ognuno dei database CRM. Vedere sp_addrolemember (Transact-SQL).
Annotazioni
Se si sceglie l'opzione 2, ogni volta che viene creata una nuova organizzazione, sarà necessario aggiungere l'account del servizio SSRS a questo nuovo database.