Windows Server 2012 R2、IIS 8.5 (ClassicASP 機能を含む)、および SQL Server 2014 Express を実行する新しいサーバー ビルドがあります。アプリケーション プール ID を使用してデータベースに接続したいと考えています。データベースは「Windows 認証モード」に設定されています。
私のアプリケーション プール ID は と呼ばれactivbase.net
ます。SQL Server にセキュリティ ログインを設定し、IIS AppPool\activbase.net
ユーザーがそれをデータベースにマップしてdb_datareader
アクセスdb_datawriter
しました。
ただし、Web サイトからデータベースにアクセスしようとすると、次のようになります。
ログインで要求されたデータベース「ActivbaseLive」を開くことができません。ログインに失敗しました。
接続を機能させるにはこれで十分だと思いました。アプリケーション ログ (イベント ビューア) には次のように表示されます。
ユーザー 'NT AUTHORITY\IUSR' のログインに失敗しました。理由: 明示的に指定されたデータベース 'ActivbaseLive' を開くことができませんでした。[クライアント: ]
NT AUTHORITY\IUSR
そのため、SQL Server>Security>Logins and Databases>[ActivbaseLive]>Security>Users にも同様に追加し、これで問題が解決しました。
私の質問は次のとおりです。
NT AUTHORITY\IUSR
ログイン/ユーザーに加えて、IIS AppPool\activbase.net
ログイン/ユーザーを SQL Server インスタンスとデータベースに追加する必要がありますか?- これを行うとセキュリティ上の問題はありますか? (注:これは本番環境になります)
ありがとう、クリス