現象:
System.Data.SqlClient.SqlException: ユーザー 'COMPUTERNAME/ASPNET' はログインできませんでした。
回答:
System.Data.SqlClient.SqlConnection で指定してある ConnectionString はどうなっていますか?
おそらく Trusted_Connection=yes か Integrated Security=SSPI が指定されているかと思います。
これは Windows 認証でデータベースに接続しに行く指定です。
で、ASP.NET は実行時ユーザは %COMPUTERNAME%/ASPNET で動作しています。
ConnectionString が Windows 認証を指定しているとこの %COMPUTERNAME%/ASPNET で接続しにいこうとします。
ですので、Windows 認証を使用する場合は MSDE に %COMPUTERNAME%/ASPNET のログインとデータベースへのアクセス権を明示的に指定してあげる必要があります。
MSDE はデフォルト Windows 認証のみ有効であるため、SQL 認証を使うやり方を教える場合には MSDE の設定を変更するやり方も教える必要があるため、今回は割愛します。
もし、SQL 認証を使いたいといった場合はレスを付けてください。
ASPNET ユーザの権限を追加する手順
1.「スタート」→「名前を指定して実行」→「名前」に「cmd」と入力して「OK」をクリック
2.次のコマンドを実行します。
SET DATABASE_NAME="権限を付けたいデータベース名" OSQL -E -S (local) -Q "sp_grantlogin '%COMPUTERNAME%/ASPNET'" OSQL -E -S (local) -d %DATABASE_NAME% -Q "sp_grantdbaccess '%COMPUTERNAME%/ASPNET'" OSQL -E -S (local) -d %DATABASE_NAME% -Q "sp_addrolemember 'db_owner', '%COMPUTERNAME%/ASPNET'"
※%COMPUTERNAME% は ASP.NET を実行しているマシン名です。環境変数に設定されているので、このままで OK です。
3.ASP.NET を実行