文書番号: 316989 - 最終更新日: 2007年9月21日 - リビジョン: 5.5

ASP.NET から SQL Server への信頼されたデータ接続を作成するとエラー メッセージ "ユーザー 'AccountName' はログインできませんでした" が表示される

お知らせお使いのオペレーティング システムには適用しない情報が含まれている場合があります。
この記事は、以前は次の ID で公開されていました: JP316989

目次

すべて展開する | すべて折りたたむ

現象

Microsoft ASP.NET から Microsoft SQL Server への信頼されたデータ接続を作成すると、次のエラー メッセージが表示されることがあります。
ユーザー 'MachineName\ASPNET' はログインできませんでした。
インターネット インフォメーション サービス (IIS) 6.0 を実行するコンピュータの場合は、次のエラー メッセージが表示されることがあります。
ユーザー 'NT AUTHORITY\NETWORK SERVICE' はログインできませんでした。
: 上記のエラー メッセージは、統合セキュリティを使用している場合 (接続文字列に integrated security=sspi 属性を含めている場合) にのみ表示されます。

原因

ASP.NET を使用している場合、デフォルトでは Aspnet_wp.exe (IIS 6.0 で実行されるアプリケーションの場合は W3wp.exe) と SQL Server への要求の両方に対して ASPNET アカウント (IIS 6.0 で実行されるアプリケーションの場合は NetworkService アカウント) のセキュリティ コンテキストが使用されます。デフォルトでは、ASPNET アカウント (IIS 6.0 で実行されるアプリケーションの場合は NetworkService アカウント) は SQL Server 内で権限を与えられていないため、データベースに接続できません。

解決方法

この問題を解決するには、以下のいずれかの方法を使用します。
  • 方法 1 : プログラムを使用して、ASP.NET ワーカー プロセスのセキュリティ コンテキストを、適切な SQL Server 権限を持つユーザーに変更します。
  • 方法 2 : ASP.NET のデフォルト構成を変更して、SQL Server で適切な権限を持つユーザーのコンテキストで ASP.NET ワーカー プロセスが開始され、実行されるようにします。
  • 方法 3 : ASPNET アカウント (IIS 6.0 で実行されるアプリケーションの場合は NetworkService アカウント) に SQL Server 上で適切な権限を与えて、必要なリソースにアクセスできるようにします。

    : この方法を使用すると、SQL Server を実行しているコンピュータ上のすべての Web アプリケーションに、対応する権限が与えられます。

状況

この動作は仕様です。

詳細

問題の再現手順

  1. ASP.NET と SQL Server の両方を実行しているコンピュータで Microsoft Visual Basic .NET Web アプリケーションを新規作成します。
  2. プロジェクトで作成された Webform1.aspx ページの Page_Load イベントに次のコードを追加します。
    Dim con As New System.Data.SqlClient.SqlConnection("data source=localhost;integrated security=sspi;database=northwind")
     con.open()
     con.close()
  3. プロジェクトをビルドし、ブラウザで Webform1.aspx ページを開きます。
  4. 「現象」に記載されているエラー メッセージが表示されます。

関連情報

ASP.NET ワーカー プロセスのセキュリティ コンテキストをプログラムで変更する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
306158? (http://support.microsoft.com/kb/306158/ ) ASP.NET アプリケーションに偽装を実装する方法
307002? (http://support.microsoft.com/kb/307002/ ) [PRB] ASP/ODBC/SQL Server エラー 0x80040E4D "ユーザー '(Null)' のログインに失敗しました"
253500? (http://support.microsoft.com/kb/253500/ ) [PRB] ASP から SQL Server への接続時にエラー メッセージ "クライアントの接続が確立できません" が表示される
306586? (http://support.microsoft.com/kb/306586/ ) [PRB] ASP でエラー 80004005 "ログインに失敗しました" が表示された場合のトラブルシューティング
247931? (http://support.microsoft.com/kb/247931/ ) [INF] Active Server Pages で SQL Server に接続するための認証方法
315158? (http://support.microsoft.com/kb/315158/ ) [FIX] ドメイン コントローラでデフォルトの ASPNET アカウントを使用すると ASP.NET が動作しない
824308? (http://support.microsoft.com/kb/824308/ ) [BUG] Windows 2000 SP 4 を実行するドメイン コントローラで、IWAM アカウントに ASP.NET 1.1 に対する偽装の権利が割り当てられない
ASP.NET のセキュリティ コンテキストのデフォルト構成を変更する方法の詳細については、以下の MSDN (Microsoft Developer Network) Web サイトを参照してください。
http://www.microsoft.com/japan/msdn/net/bda/authaspdotnet.aspx (http://www.microsoft.com/japan/msdn/net/bda/authaspdotnet.aspx)
SQL Server に ASPNET アカウントを追加する方法の詳細については、SQL Server Books Online で「Windows ユーザーまたはグループの追加」を参照してください。

この資料は以下の製品について記述したものです。
  • Microsoft ASP.NET 1.1
  • Microsoft ADO.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft ADO.NET 2.0
キーワード:?
kberrmsg kbfaq kbhttpruntime kbnofix kbprb kbsecurity KB316989
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"