SSAS (SQL Server Analysis Services) をご利用中に「The following data source could not be found」というエラーに直面されたとのこと、ご心配は不要です。このエラーは、SSASがデータの取得元となるデータソースへの接続情報を見つけられない、またはアクセスできない場合に発生しますが、多くの場合、簡単な手順で解決できます。
このガイドでは、まず最も早く解決できる方法からご紹介し、その後に根本原因の特定と再発防止策について詳しく解説します。落ち着いて、一つずつ確認していきましょう。
目次
1. SSAS: The following data source could not be found とは?(概要と緊急度)
このエラーメッセージは、SQL Server Analysis Services (SSAS) が、指定されたデータソースオブジェクト(例:SQL Serverデータベース、Oracleデータベースなどへの接続情報)を通じて、データソース自体を見つけることができない、あるいは接続できない状態を示しています。
具体的には、以下のような原因が考えられます。
- データソースの接続文字列に誤りがある(サーバー名、データベース名、認証情報など)。
- SSASサービスがデータソースにアクセスするための適切な権限を持っていない。
- ネットワークの問題や、データソースとなるデータベースサーバーが停止している。
このエラーが発生すると、SSASキューブやテーブルモデルの処理(Process)が失敗し、最新のデータが反映されなくなります。これにより、ビジネスレポートや分析に遅延や誤った情報が表示される可能性があるため、緊急度は「中~高」と判断し、早急な対応が求められます。
2. 【最速】今すぐ試すべき解決策
このエラーの最も一般的な原因は、データソースの接続情報の間違いやアクセス権限の不足です。まずは、SSASに設定されているデータソースの接続情報を確認し、テスト接続を実行することが最速の解決策となります。
解決策1:SSMSでデータソースの接続情報を確認し、テスト接続を実行する
SQL Server Management Studio (SSMS) を使用して、SSASデータベースに設定されているデータソースのプロパティを確認し、接続テストを実行します。これは最も直接的で簡単な確認方法です。
-
- SSMSを起動します。以下のコマンドでSSMSを起動できます(パスはインストール環境により異なる場合があります)。
# SQL Server Management Studio (SSMS) を起動
Start-Process "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe"
- SSMSでSSASサーバーに接続します。(オブジェクトエクスプローラーで「Analysis Services」を選択し、サーバー名を指定して接続)
- 接続後、SSASサーバーを展開し、対象のSSASデータベースを展開します。
- 「データソース」フォルダを展開し、エラーが発生しているデータソースオブジェクトを右クリックし、「プロパティ」を選択します。
- プロパティウィンドウで、左側のリストから「接続文字列」または「偽装情報 (Impersonation Information)」の項目を確認します。
- 「接続文字列」のセクションで、
Provider,Data Source(サーバー名),Initial Catalog(データベース名) などが正しいか、誤字脱字がないかを慎重に確認してください。 - 特に重要なのが、「テスト接続」ボタンです。これをクリックして、データソースへの接続が成功するかどうかを確認します。
- もしテスト接続に失敗した場合、接続文字列の誤りを修正してください。SQL Server認証を使用している場合は、ユーザー名とパスワードが正しいか、有効期限が切れていないかも確認します。
- 「偽装情報 (Impersonation Information)」のセクションで、SSASがどのユーザーアカウントでデータソースに接続しようとしているかを確認します。
- 修正が完了したら、「OK」をクリックしてプロパティを保存し、SSASデータベースや関連するキューブ/テーブルモデルの再処理(Process)を試みてください。
また、後述する権限問題の切り分けのために、SSASサービスアカウントを確認することも有用です。
# SSASサービスアカウントを確認 (権限問題の切り分けに役立ちます)
# インスタンス名がデフォルト(MSSQLServerOLAPService)でない場合は適宜変更
Get-Service -DisplayName "SQL Server Analysis Services*" | Select-Object Name, DisplayName, StartType, Status, ServiceAccount
このコマンドで表示されるServiceAccountが、データソースへのアクセス権限を持つアカウントであるかを確認します。
3. SSAS: The following data source could not be found が発生する主要な原因(複数)
前述の最速解決策で問題が解決しない場合、または根本原因を深く理解するために、以下の主要な原因を確認していきましょう。
3.1. データソース接続情報の誤り
- サーバー名/インスタンス名の間違い: 接続文字列に記述されているSQL Serverのホスト名やインスタンス名が正しくない、またはIPアドレスが間違っている。
- データベース名の間違い: 接続先のデータベース名が正しくない、またはデータベースが削除/リネームされている。
- ユーザー名/パスワードの間違いまたは有効期限切れ: SQL Server認証を使用している場合、指定されたユーザーアカウントの資格情報が誤っているか、パスワードの有効期限が切れている。
- プロバイダー情報の誤り: 使用されているOLE DBプロバイダーがインストールされていない、またはバージョンがSSASと互換性がない。
3.2. SSASサービスアカウントの権限不足
- データベースへのSELECT権限がない: SSASサービスが実行されているアカウント(または偽装設定されているアカウント)が、参照先のリレーショナルデータベースに対してデータ読み取り(SELECT)権限を持っていません。
- Windows認証の問題: 統合セキュリティを使用している場合、SSASサービスアカウント(または偽装アカウント)が、データソースとなるSQL Server上でデータベースユーザーとしてマッピングされ、必要な権限が付与されている必要があります。
3.3. ネットワークの問題
- ファイアウォールのブロック: SSASサーバーからデータソースサーバーへの通信が、ファイアウォールによってブロックされている可能性があります(デフォルトではSQL Serverのポートは1433)。
- ネットワーク接続の問題: SSASサーバーとデータソースサーバー間のネットワーク接続が確立されていない、または不安定である。
- データソースサーバーの停止: 参照先のデータベースサーバーが稼働していない、またはサービスが停止している。
3.4. データソースサーバー側の設定変更
- 参照先のデータベースが削除された、名前が変更された、または別のサーバーに移行された。
- データソースサーバーの認証方法が変更され、SSAS側の設定と合わなくなった。
4. SSAS (SQL Server)で恒久的に再発を防ぐには
一度解決しても、同様のエラーが再発しないように、以下の恒久的な対策を検討しましょう。
4.1. 接続情報のセントラル管理と標準化
- 一貫した命名規則: SSASデータソース、リレーショナルデータベース、サーバー名などに対し、明確な命名規則を導入し、それを徹底します。
- 接続情報のドキュメント化: すべてのデータソース接続情報を詳細にドキュメント化し、変更時には必ず更新します。
- 環境ごとの管理: 開発、テスト、本番といった環境ごとに異なる接続情報を確実に管理し、誤った情報がデプロイされないようデプロイプロセスを強化します。
4.2. 適切な権限管理と最小特権の原則
- 最小特権の原則: SSASサービスアカウントや偽装アカウントには、データソースへのアクセスに必要な最小限の権限のみを付与します。必要以上の権限はセキュリティリスクを高めます。
- グループによる権限管理: Active Directoryグループなどを活用し、役割ベースで権限を付与することで、管理を簡素化し一貫性を保ちます。
- 定期的な権限レビュー: 定期的にSSASサービスアカウントやデータソースアクセスアカウントの権限を見直し、不要な権限がないか確認します。
4.3. 定期的な接続テストと監視体制の構築
- 自動化された接続テスト: SQL Server AgentジョブやPowerShellスクリプトを使用して、SSASデータソースの接続テストを定期的に自動実行し、問題発生時に早期に検知できる仕組みを導入します。
- SSASオブジェクトの監視: SSASデータベースやキューブ/テーブルモデルの処理状況を監視し、失敗時にアラートが飛ぶように設定します。SQL Server Agentのジョブ履歴監視などが有効です。
4.4. 変更管理とバージョン管理の徹底
- 構成のバージョン管理: SSASプロジェクト (.smprojファイル) や関連するデプロイスクリプトをGitなどのバージョン管理システムで管理し、変更履歴を追跡可能にします。
- 変更管理プロセス: データソース、データベース、サーバー設定など、関連するシステムへの変更は、必ず正式な変更管理プロセスを経て実施します。
- 影響分析: 変更を実施する前に、SSASへの影響を十分に分析し、テスト環境で検証を行います。
これらの対策を講じることで、「SSAS: The following data source could not be found」エラーの発生頻度を大幅に減らし、安定したSSAS運用が可能になります。一つずつ地道な作業ですが、システムの信頼性向上には不可欠なステップです。