无法针对Microsoft Dynamics CRM执行基于 SQL 的报表

本文提供了安装 Microsoft Dynamics CRM Reporting Extensions 后发生的错误的解决方案。

适用于:2011 Microsoft Dynamics CRM、Microsoft Dynamics CRM 2013
原始 KB 数: 2923525

症状

安装 Microsoft Dynamics CRM Reporting Extensions 后,基于 SQL 的报表(例如现成的报表)无法在 Microsoft Dynamics CRM 中运行。 SQL Server Reporting Services (SSRS) 日志文件显示以下消息:

处理!ReportServer_####!MM/DD/YYYYY-HH:MM:SS:: e 错误:数据源“ORGANIZATIONUNIQUENAME”:发生错误。 详细信息:Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:无法创建与数据源“ORGANIZATIONUNIQUENAME”的连接。 >--- Microsoft.ReportingServices.DataExtensions.ReportServerDataProvider.RSDPException:已在数据源的连接字符串中指定了集成安全性或凭据,但数据源配置为使用不同的凭据类型。 若要使用连接字符串中的值,必须为报表服务器配置无人参与的报表处理帐户。
at Microsoft.ReportingServices.DataExtensions.ConnectionExtension.FailIntegratedSecurity ()
at Microsoft.ReportingServices.DataExtensions.ConnectionExtension.AppendCredentials ()
at Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.get_ConnectionString ()
at Microsoft.ReportingServices.DataExtensions.ConnectionExtension.Open ()
at Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.Open ()
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenConnection (IProcessingDataSource dataSourceObj、DataSourceInfo dataSourceInfo、IDbConnection conn)
---内部异常堆栈跟踪---结束
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenConnection (IProcessingDataSource dataSourceObj、DataSourceInfo dataSourceInfo、IDbConnection conn)
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.HandleImpersonation (IProcessingDataSource dataSource、DataSourceInfo dataSourceInfo、String datasetName、IDbConnection connection、Action afterImpersonationAction)
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenDataSourceExtensionConnection (IProcessingDataSource dataSourceObj, String connectString, DataSourceInfo dataSourceInfo, String datasetName)
at Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.OpenConnection (DataSource dataSourceObj、DataSetObj、OnDemandProcessingContext pc、DataProcessingMetrics 指标)
at Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.OpenInitialConnectionAndTransaction ()
at Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.InitializeDataSource ()
at Microsoft.ReportingServices.OnDemandProcessing.RuntimeAtomicDataSource.Process (Boolean fromOdp)

注意

查看 报表服务器服务跟踪日志 ,了解 SSRS 日志文件的位置。

原因

运行 SSRS 服务的帐户是虚拟或本地帐户,例如 LocalSystem。 这些虚拟或本地帐户没有查询 FilteredView 的必要权限。 查询 FilteredViews 所需的 SQL 权限是一个名为 CRMReaderRole 的自定义角色。 此角色将授予名为 PrivReportingGroup 的 Active Directory 组。 在安装 Reporting Extensions 期间,SSRS 服务帐户将添加到 PrivReportingAccount。 无法将虚拟或本地帐户添加到 Active Directory 组。

解决方案

若要解决此问题,请执行以下步骤:

  1. 在网络服务上下文中运行 SSRS 服务。 为了提高安全性,请以托管服务帐户(Active Directory 中的低特权用户)身份运行 SSRS 服务。 若要更改服务帐户,请参阅配置服务帐户 (SSRS Configuration Manager)
  2. 将 CRMReaderRole 角色手动授予在每个 CRM 数据库上运行 SSRS 服务的帐户。 请参阅 sp_addrolemember (Transact-SQL)

注意

如果选择了选项 2,则每当创建新组织时,都需要将 SSRS 服务帐户添加到此新数据库。