ASP.NETからSQLserverへ接続する設定
Visual Studio 2008でASP.NET&SQLserverの開発を行った際に、デバッグモードではSQLserverに接続できるのに、IISでは接続しようとすると、以下のエラーが出た。
このログインで要求されたデータベース'MyDB' を開けません。ログインに失敗しました。ASPNET はログインできません
原因
デバッグモードでは実行ユーザ(Windowsアカウント)でアクセスするのに対して、IISの場合は「マシン名\ASPNET」でアクセスするためだ。
そして「マシン名\ASPNET」に、MyDBへのアクセス権がないためにこうした事が起こる。
解決方法
Windows認証で接続させたい場合、MyDBにユーザー「マシン名\ASPNET」からのアクセスを許可してやる必要がある。
- SQLserver Management Studioを開く
- SQL Serverのインスタンス直下の[セキュリティ]-[ログイン]で、「新しいユーザー」
- ログイン名に「マシン名\ASPNET」、認証方法を「Windows認証」で作成
- [セキュリティ]-[ログイン]-[マシン名\ASPNET]のプロパティ
- 左側ペインの「ユーザーマッピング」
- 「データベースロールメンバシップ」から、db_datawriter、db_datareader、publicデータベースロールをチェック。閲覧だけならpublicとdb_datareaderのみでも可。
- OKで完了