在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库
这同天在做一个安装项目,用于直接通过ASP.NET页面用向导方式来安装数据库到本地SQL SERVER中
当我将代码写好后,用NUNIT测试时,全部通过,建立,删除数据库都正常
但是,在ASP.NET页面中使用相同的代码连接数据库时,却遭遇到失败
于是,查了一下MS的相关文档,其中有一篇文章
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;316989
中提到了此问题,那就是在ASP.NET中,使用
Integrated Security=SSPI
方式连接数据库,会提示无法登录
MS给出了三种解决方式:
1,不使用Integrated Security=SSPI方式连接数据库,使用user=xxx;password=xxx来显示的指定登录SQL的SQL用户和密码,但是,考虑到这样明文方式将用户名和密码加入到WEB.CONFIG有一定的安全风险
2,使用Integrated Security=SSPI,将ASP.NET的辅助进程的启动帐户更改为在SQL SERVER中有登录权限的帐户,列如,有些人就将ASP.NET辅助进程的启动帐户改成administrator,虽然这个可以解决问题,但是,administrator的权限实在太大,不宜使用此法
3,使用Integrated Security=SSPI,将ASP.NET辅助进程的启动帐户加入到SQL SERVER登录中
这里,建议采用第三种方法,一般来说,在IIS5.0中,ASP.NET的辅助进程使用ASPNET帐户,而在IIS 6.0中,ASP.NET辅助进程则使用network Service帐户来启动
因此,我们只需将Network Service添加到SQL SERVER登录中即可
下面是具体步骤
1,打开SQL SERVER,进入安全->登录

第二步,点击名称后的拾取钮

第三步,选择network service所在组,很多人进行到第二步就进行不下去了,因为找来找去都找不到network service帐户呀
实际上,network service 是performance log users组的成员

第四步,点击成员,找到network service

第五步,点击添加即可
当我将代码写好后,用NUNIT测试时,全部通过,建立,删除数据库都正常
但是,在ASP.NET页面中使用相同的代码连接数据库时,却遭遇到失败
于是,查了一下MS的相关文档,其中有一篇文章
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;316989
中提到了此问题,那就是在ASP.NET中,使用
Integrated Security=SSPI
方式连接数据库,会提示无法登录
MS给出了三种解决方式:
1,不使用Integrated Security=SSPI方式连接数据库,使用user=xxx;password=xxx来显示的指定登录SQL的SQL用户和密码,但是,考虑到这样明文方式将用户名和密码加入到WEB.CONFIG有一定的安全风险
2,使用Integrated Security=SSPI,将ASP.NET的辅助进程的启动帐户更改为在SQL SERVER中有登录权限的帐户,列如,有些人就将ASP.NET辅助进程的启动帐户改成administrator,虽然这个可以解决问题,但是,administrator的权限实在太大,不宜使用此法
3,使用Integrated Security=SSPI,将ASP.NET辅助进程的启动帐户加入到SQL SERVER登录中
这里,建议采用第三种方法,一般来说,在IIS5.0中,ASP.NET的辅助进程使用ASPNET帐户,而在IIS 6.0中,ASP.NET辅助进程则使用network Service帐户来启动
因此,我们只需将Network Service添加到SQL SERVER登录中即可
下面是具体步骤
1,打开SQL SERVER,进入安全->登录

第二步,点击名称后的拾取钮

第三步,选择network service所在组,很多人进行到第二步就进行不下去了,因为找来找去都找不到network service帐户呀
实际上,network service 是performance log users组的成员

第四步,点击成员,找到network service

第五步,点击添加即可

