连接字符串中的integrated security=true的意思是什么

来源:互联网 发布:mac菜单快捷键 编辑:程序博客网 时间:2024/04/28 22:49
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!

陈希章

原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/05/12/1454723.html
原文标题:连接字符串中的integrated security=true的意思是什么
原文发表:2009/5/12 3:26:00

每次在讲到这个地方的时候,我都会提问。也经常有朋友回答不上来。

integrated security=true 的意思是集成验证,也就是说使用Windows验证的方式去连接到数据库服务器。这样方式的好处是不需要在连接字符串中编写用户名和密码,从一定程度上说提高了安全性。

那么到底是用哪一个Windows身份呢?很多朋友说,使用当前用户的身份吧?这个回答不能算错,至少在Windows应用程序中是这样的。但如果换成是ASP.NET应用程序,则就不是了。

如果是ASP.NET应用程序(网站或者服务),那么根据其运行宿主环境的不一样,可能会有差异

1. Windows XP :ASPNET帐号

2. Windows 2003或者以后的版本:NetWork Service帐号

知道这个原理之后,那么如果你准备用Integrated security=true,则需要授予这两个帐号对于数据库的访问权限。

但要注意一个问题(也是很多朋友疑惑的),就是在Visual Studio里面调试的时候,貌似又不是使用ASPNET这个帐号的。这是因为Visual Studio总是使用当前开发环境中,用户的Windows身份来发起请求的。

从下面的图可以看到这个差别。在VS里面调试,与在IIS中调试,访问的身份是不一样的

image

作者:陈希章
出处:http://blog.csdn.net/chen_xizhang
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。