SQL ベースのレポートは、Microsoft Dynamics CRMに対して実行できない

この記事では、Microsoft Dynamics CRM Reporting Extensions をインストールした後に発生するエラーの解決策について説明します。

適用対象: Microsoft Dynamics CRM 2011、Microsoft Dynamics CRM 2013
元の KB 番号: 2923525

現象

Microsoft Dynamics CRMレポート拡張機能をインストールした後、すぐに使えるレポートなどの SQL ベースのレポートは、Microsoft Dynamics CRM内で実行できません。 SQL Server Reporting Services (SSRS) ログ ファイルには、次のメッセージが表示されます。

処理!ReportServer_####!MM/DD/YYYY-HH:MM:SS:: e ERROR: データ ソース '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 dataSource dataSourceObj, String connectString, DataSourceInfo dataSourceInfo, String datasetName)
at Microsoft.ReportingServices.OnDemandProcessing.RuntimeDataSource.OpenConnection(DataSource dataSourceObj, DataSet 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 などの仮想アカウントまたはローカル アカウントです。 これらの仮想アカウントまたはローカル アカウントには、FilteredViews のクエリに必要なアクセス許可がありません。 FilteredViews のクエリに必要な SQL アクセス許可は、CRMReaderRole というカスタム ロールです。 このロールは、PrivReportingGroup という名前の Active Directory グループに付与されます。 Reporting Extensions のインストール中に、SSRS サービス アカウントが PrivReportingAccount に追加されます。 仮想アカウントまたはローカル アカウントを Active Directory グループに追加することはできません。

解決方法

この問題を解決するには、次の手順を実行します。

  1. ネットワーク サービスのコンテキストで SSRS サービスを実行します。 セキュリティを強化するには、SSRS サービスを、Active Directory の低い特権ユーザーであるマネージド サービス アカウントとして実行します。 サービス アカウントを変更するには、「サービス アカウントの構成 (SSRS Configuration Manager)」を参照してください。
  2. 各 CRM データベースで SSRS サービスを実行しているアカウントに CRMReaderRole ロールを手動で付与します。 「sp_addrolemember (Transact-SQL)」を参照してください。

注:

オプション 2 を選択した場合、新しい組織が作成されるたびに、SSRS サービス アカウントをこの新しいデータベースに追加する必要があります。