在使用connection string时遇到一些问题
字符串如下"Data Source= ******;Initial Catalog=******;Persist Security Info=True;Integrated Security=true;User ID=sa;Password=******;Connect Timeout=10"
问题一:连接提示windows用户权限之类错误
这个问题应该是本机的windows用户无法连接远端数据库服务器,相关属性为"Integrated Security=true"
Integrated Security=true连接属性说明:参见http://www.cnblogs.com/zxjyuan/archive/2009/03/11/1408991.html
Integrated Security 身份验证方式
当为false时,将在连接中指定用户ID和密码。
当为true时,将使用当前的Windows帐户凭据进行身份验证。
可识别的值为true、false、yes、no以及与true等效的sspi。
Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。应用程序协议设计者能够利用该接口获得不同的安全性服务而不必修改协议本身。
上面这句话的意思就是这个连接采用了这个接口,如果没有定义就会出错!
指你使用windows自带的安全验证机制,这时你不用加uid和password也可以打开数据库
如果你没有那一句的话,就必须在联接字符串里写上uid=sa;password=00;
否则你不能打开数据库
问题二:设置的connect timeout=10 无效,连接时会等很久(40s左右)
出现这个问题可能的原因是本机与数据库主机不通,设置的timeout属性是在连通时有效
其他说明
Persist Security Info=True 参见http://blog.csdn.net/yzsind/article/details/1507717
Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",
True表示保存,False表示不保存
ADO缺省为True
(ADO.net缺省为False,未测试,根据参考资料上说的)
所以一般使用默认的false