SQL Server データベースのログインに失敗しました - イベント 3351

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2009-11-10

アラート名:   SQL Server データベースのログインに失敗しました

イベント ID:   3351

概要:   Microsoft SharePoint Foundation は、Microsoft SQL Server 2008 データベースを使用して、SharePoint Foundation Web サイトと構成設定の大部分のコンテンツを保存し、1 つのサービス アカウントを使用して、ユーザー要求のためにデータベースと通信します。Web アプリケーションは 1 つまたは複数のデータベースに関連付けられていることがあることに注意してください。このエラー ("SQL Server データベースのログインに失敗した") は、指定されたサービス アカウント ユーザー名とパスワードを使用して、SharePoint Foundation が SQL Server 2008 にログオンできないことを意味します。

現象:   次の現象が発生する可能性があります。

  • 次のイベントがイベント ログに記録されます。イベント ID: 3351 説明: SQL データベースのログインに失敗しました。SQL Server のエラー情報は、以下を参照してください。

原因:   Microsoft SharePoint Foundation サービス アカウントのユーザー名またはパスワードが、セッション前に無効であったか、セッション中に無効になりました。

注意

以下の手順を実行するには、SharePoint のファームの管理者グループのメンバーである必要があります。

解決策:   データベース アクセス アカウントに適切な権限を与えます。

  • この問題を解決するには、データベース アクセス アカウントを割り当て、そのアカウントが SQL Server の適切なアクセス権限を持っていることを確認します。

    データベース アクセス アカウントを割り当てるには

    1. SharePoint サーバーの全体管理 Web ページのサイド リンク バーで、[セキュリティ] をクリックし、[一般的なセキュリティ] セクションの [サービス アカウントの構成] をクリックします。

    2. [資格情報の管理] セクションの上側のドロップダウン リストで、Web アプリケーションの適切な Web アプリケーション プールをクリックします。

    3. [このコンポーネントのアカウントの選択] ドロップ ダウン リストで、この Web アプリケーション プールを関連付けるドメイン アカウントをクリックするか、[新しい管理アカウントの登録] をクリックして、新しいドメイン アカウントをこのアプリケーション プールに関連付けます。

    4. [OK] をクリックして、変更を保存します。

    アカウントに SQL Server の適切な権限があることを確認するには

    1. 管理者権限を持つアカウントを使用して、SQL Server を実行しているコンピューターに接続します。

    2. SQL Server Management Studio の [オブジェクト エクスプローラー] ナビゲーション ウィンドウで、[セキュリティ] ノードを展開して、[ログイン] ノードをクリックします。データベース アクセス アカウントの名前は、それが SQL ログインであることを示しています。

    3. 目的のアカウントが存在する場合は、[オブジェクト エクスプローラー] ナビゲーション ウィンドウで、[データベース] ノード、構成データベース ノード (たとえば、WSS_Config)、[セキュリティ] ノードの順に展開して、[ロール] をクリックします。

    4. [データベース ロール] ノードを展開し、[db_owner] を右クリックして、[プロパティ] をクリックします。

    5. [データベース ロールのプロパティ] ダイアログ ボックスで、データベース アクセス アカウントが、[このロールのメンバー] の一覧に含まれているかどうかを確認します。アカウントが一覧に含まれていない場合は、[追加] をクリックします。

    データベースの問題が解決されたことを確認するには

    1. SharePoint 管理シェルで、Windows PowerShell コマンド Get-SPSite | Format-Table -Property ID,WebApplication,ContentDatabase を実行して、各 Web アプリケーションのサイトを一覧表示してそれぞれのデータベース内のサイトをすべて表示し、各データベースで 1 つのサイトを特定します。

    2. サイトを閲覧します。