ASP.netはVisual Studioでデバッグができるので、.netプログラマには相性が良い。
先刻、SQL serverにアクセスするWebアプリを作成したが、Visual Studioのデバッガーでは認証されるのに、IIS経由では認証エラーになってしまう。
エラーの詳細は以下。
「このログインで要求されたデータベース”○○○○○”を開けません。ログインに失敗しました。ユーザー’IIS APPPOOL\DefaultAppPool’はログインできませんでした。」
どうやらDBにアクセスするワーカープロセスの権限がデバッガーとIISで異なることが原因のようだ。
「DefaultAppPool」というのは、IISのアプリケーションプールの名前だ。
名称からしてWindows認証のようだ。
それではMicrosoft SQL Server Management Studioでログインユーザーを作成してみよう。
ログイン名「IIS APPPOOL\DefaultAppPool」でWindows認証とする。
ユーザーマッピングで目的のデータベースにdb_ownerのロールを与える。
これで認証エラーは解消できるはずだ。
尚、ワーカープロセスのユーザー名はシステム環境により異なるようだ。
拙宅の場合「NT AUTHORITY\IUSR」というケースもあった。