読者です 読者をやめる 読者になる 読者になる

からめもぶろぐ。

ワタシ SharePoint チョット デキル

Excel Services で「ブックを開くことができません」と出る場合の対処方法

SharePoint 2013 ではアップロードした Excel ファイルを Excel Services によってブラウザーで開くことができます。しかし、Excel ファイルを開こうとすると「ブックを開くことができません」というエラーが出る場合があります。

f:id:karamem0:20151208205758p:plain

サーバーのイベント ログには以下のようなメッセージが出力されます。

SQL Server インスタンス '<インスタンス名>' の SQL データベース "<データベース名>" が見つかりません。SQL Server のエラー情報は、以下を参照してください。

このログインで要求されたデータベース "<データベース名>" を開けません。ログインに失敗しました。
ユーザー '<アカウント名>' はログインできませんでした。

原因

この現状は以下の条件の場合に発生します。

  • Excel Services をファーム管理者以外のアカウントで実行している。
  • 初期インストール後に既定の Web アプリケーションを再作成している。

エラー メッセージにもあるように、サービス アカウントがコンテンツ データベースにログインできないことが原因です。

f:id:karamem0:20151208210955p:plain

対応方法

PowerShell で以下のコマンドを実行します。

$app = Get-SPWebApplication -Identity "<Web アプリケーションの URL>"
$app.GrantAccessToProcessIdentity("<サービス アカウント名>")

実行すると Web アプリケーション所有するすべてのコンテンツ データベースにアクセス権限が付与がされます。

f:id:karamem0:20151208211207p:plain

ちなみに、コンテンツ データベースを追加すると、追加したコンテンツ データベースに対して、同じ現象が発生するので、もう一度同じコマンドを実行する必要があるようです。

SPWebApplication.GrantAccessToProcessIdentity method (String) (Microsoft.SharePoint.Administration)