私の ASP.NET v3.5 Web アプリケーションは、SQL Server 2008 データベースへの接続を開こうとすると、次の例外をスローします。
System.Data.SqlClient.SqlException: ログインによって要求されたデータベース "MyDbName" を開けません。ログインに失敗しました。ユーザー 'NT AUTHORITY\IUSR' のログインに失敗しました。
NT AUTHORITY\IUSR
問題は、サーバーのログイン リストとデータベースのユーザー リストに追加したことです。サーバーについては、ユーザーにパブリック ロールを付与し、データベースについてはdb_datareader
アクセス許可を付与しました。
NT AUTHORITY\NETWORK SERVICE
アプリケーション プールが実行されている ID である にも同じ権限を付与しました。
それが違いを生む場合、Web アプリケーションは IIS7 によってホストされます。DB と IIS が同じ物理マシン上にある場合にも、問題が再現されます。