SQL-basierte Berichte können für Microsoft Dynamics CRM nicht ausgeführt werden

Dieser Artikel bietet eine Lösung für einen Fehler, der nach der Installation der Microsoft Dynamics CRM Reporting Extensions auftritt.

Gilt für: Microsoft Dynamics CRM 2011, Microsoft Dynamics CRM 2013
Ursprüngliche KB-Nummer: 2923525

Problembeschreibung

Nach der Installation der Microsoft Dynamics CRM Berichtserweiterungen können SQL-basierte Berichte, z. B. die standardmäßigen Berichte, nicht innerhalb Microsoft Dynamics CRM ausgeführt werden. Die SQL Server Reporting Services-Protokolldateien (SSRS) zeigen die folgende Meldung an:

Verarbeitung! ReportServer_####! MM/TT/JJJJ-HH:MM:SS:: e FEHLER: Datenquelle "ORGANIZATIONUNIQUENAME": Ein Fehler ist aufgetreten. Details: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Es kann keine Verbindung mit der Datenquelle "ORGANIZATIONUNIQUENAME" hergestellt werden. >--- Microsoft.ReportingServices.DataExtensions.ReportServerDataProvider.RSDPException: Sie haben integrierte Sicherheit oder Anmeldeinformationen im Verbindungszeichenfolge für die Datenquelle angegeben, aber die Datenquelle ist für die Verwendung eines anderen Anmeldeinformationstyps konfiguriert. Um die Werte im Verbindungszeichenfolge zu verwenden, müssen Sie das Konto für die unbeaufsichtigte Berichtsverarbeitung für den Berichtsserver konfigurieren.
unter Microsoft.ReportingServices.DataExtensions.ConnectionExtension.FailIntegratedSecurity()
unter Microsoft.ReportingServices.DataExtensions.ConnectionExtension.AppendCredentials()
at Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.get_ConnectionString()
unter Microsoft.ReportingServices.DataExtensions.ConnectionExtension.Open()
unter Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.Open()
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenConnection(IProcessingDataSourceSourceObj, DataSourceInfo dataSourceInfo, IDbConnection conn)
--- Ende des --- für die ablaufverfolgung des inneren Ausnahmestapels
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenConnection(IProcessingDataSourceSourceObj, DataSourceInfo dataSourceInfo, IDbConnection conn)
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.HandleImpersonation(IProcessingDataSource, DataSourceInfo dataSourceInfo, String datasetName, IDbConnection connection, Action afterImpersonationAction)
unter Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenDataSourceExtensionConnection(IProcessingDataSource DataSourceObj, String connectString, DataSourceInfo dataSourceInfo, String datasetName)
unter Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.OpenConnection(DataSource dataSourceObj, DataSet dataSetObj, OnDemandProcessingContext pc, DataProcessingMetrics-Metriken)
unter Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.OpenInitialConnectionAndTransaction()
unter Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.InitializeDataSource()
at Microsoft.ReportingServices.OnDemandProcessing.RuntimeAtomicDataSource.Process(Boolean fromOdp)

Hinweis

Überprüfen Sie das Ablaufverfolgungsprotokoll des Berichtsserver-Diensts auf den Speicherort der SSRS-Protokolldateien.

Ursache

Das Konto, unter dem der SSRS-Dienst ausgeführt wird, ist ein virtuelles oder lokales Konto, z. B. LocalSystem. Diese virtuellen oder lokalen Konten verfügen nicht über die erforderlichen Berechtigungen zum Abfragen der FilteredViews. Die sql-Berechtigungen, die zum Abfragen der FilteredViews erforderlich sind, ist eine benutzerdefinierte Rolle namens CRMReaderRole. Diese Rolle wird der Active Directory-Gruppe privReportingGroup zugewiesen. Während der Installation der Berichtserweiterungen wird das SSRS-Dienstkonto dem PrivReportingAccount hinzugefügt. Virtuelle oder lokale Konten können nicht zu einer Active Directory-Gruppe hinzugefügt werden.

Lösung

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:

  1. Führen Sie den SSRS-Dienst im Kontext des Netzwerkdiensts aus. Um die Sicherheit zu erhöhen, führen Sie den SSRS-Dienst als verwaltetes Dienstkonto aus, ein Benutzer mit geringen Berechtigungen in Active Directory. Informationen zum Ändern des Dienstkontos finden Sie unter Konfigurieren eines Dienstkontos (SSRS Configuration Manager).
  2. Weisen Sie dem Konto, das den SSRS-Dienst für die einzelnen CRM-Datenbanken ausführt, manuell die Rolle CRMReaderRole zu. Weitere Informationen finden Sie unter sp_addrolemember (Transact-SQL).

Hinweis

Wenn Option 2 ausgewählt wird, muss bei jeder Erstellung einer neuen Organisation das SSRS-Dienstkonto dieser neuen Datenbank hinzugefügt werden.