IIS経由でDB認証エラー

ASP.netはVisual Studioでデバッグができるので、.netプログラマには相性が良い。

先刻、SQL serverにアクセスするWebアプリを作成したが、Visual Studioのデバッガーでは認証されるのに、IIS経由では認証エラーになってしまう。
エラーの詳細は以下。

「このログインで要求されたデータベース”○○○○○”を開けません。ログインに失敗しました。ユーザー’IIS APPPOOL\DefaultAppPool’はログインできませんでした。」
iis_login_error

どうやらDBにアクセスするワーカープロセスの権限がデバッガーとIISで異なることが原因のようだ。
「DefaultAppPool」というのは、IISのアプリケーションプールの名前だ。
名称からしてWindows認証のようだ。

それではMicrosoft SQL Server Management Studioでログインユーザーを作成してみよう。
ログイン名「IIS APPPOOL\DefaultAppPool」でWindows認証とする。

sqlserver_manstd_gen

ユーザーマッピングで目的のデータベースにdb_ownerのロールを与える。

sqlserver_manstd_umap

これで認証エラーは解消できるはずだ。
尚、ワーカープロセスのユーザー名はシステム環境により異なるようだ。
拙宅の場合「NT AUTHORITY\IUSR」というケースもあった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です