访问SQL Server的时候,无法登陆 的解决办法

現象:

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 を実行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值