SQL SERVER连接字符串学习
在使用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
Pooling = false 参见 http://www.cnblogs.com/eaglet/archive/2011/10/31/2230197.html
Pooling 属性设置是否使用连接池,默认情况下是使用的,即Pooling = true。
使用连接池,只有当第一次建立连接时(connection.open())时会耗时较多(几十毫秒),后面再次建立连接时几乎不耗时间(前提是物理连接没有断开,物理连接一般会有个默认等待时间没有使用则断开,20分钟或其他)。connection.close()只是关闭逻辑连接。
不使用连接池,则每次都是重新建立物理连接,需要做和服务器握手,解析连接字符串,授权,约束的检查等等操作,耗时较长。
Min Pool Size = 1,Max Pool Size = 100 参见 http://www.cnblogs.com/eaglet/archive/2011/10/31/2230197.html
MinPoolSize 属性指第一建立物理连接时默认建立的连接数,默认为0则指建立一个物理连接。
MaxPoolSize 属性指最多会建立的物理连接数,默认是100(具体详查),当有多线程同时建立100+数据库连接时,则会出现等待阻塞。
通常建议的做法是MinPoolSize保持默认的0值,MaxPoolSize设置为可能发生的最大连接数,连接池中的物理连接数量会自适应具体数。
Sql Server 可以接受的最大连接数为32767.
SQL SERVER连接字符串学习的更多相关文章
- .NET SQL Server连接字符串句法
.NET SQL Server连接字符串句法 数据库的连接性已经发展成为应用程序开发的一个标准方面.数据库连接字符串现在已经成为每个项目的标准必备条件.我发现自己为了找到所需要的句法,经常要从另外一个 ...
- SQL Server 连接字符串和身份验证 学习
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1; ...
- [ASP.NET]SQL Server 连接字符串和身份验证
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1; Property ...
- SQL Server 连接字符串和身份验证详解
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1; ...
- SQL Server 连接字符串和身份验证
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1;P ...
- Sql Server连接字符串
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1; ...
- sql server连接字符串与tcp/ip开启
连接字符串1:Data Source=localhost,1433;User ID=sa;Password=123;Initial Catalog=test;Min Pool Size=1;Max P ...
- SQL Server 连接字符串总结
这里记录的是c# 在vs中连接sql server数据库中的连接字符串的总结. 1.标准安全连接 Data Source = myServerAddress;Initial Catalog = myD ...
- SQL Server 连接字符串备忘
今天把服务器上的远程访问关了,把连接字符串中的IP地址改成了.,然后就一直连不上.弄了半天,原来是本地连接时非默认实例,不能带端口号. 1.原来的连接服务器地址是:192.168.0.1SQL2005 ...
随机推荐
- spring和springmvc之间的整合
一.springmvc就是运行在spring的环境下,这两者是否需要进行整合,即:是不是要把service .dao . 事务 .和其它框架的整合放在springmvc的配置文件中.这样子在技术层面上 ...
- 如何使weblogic11g类似weblogic923一样统一使用一个boot.properties文件
如何使weblogic11g类似weblogic923一样 统一使用一个boot.properties文件 1.在weblogic域下创建文件boot.properties输入用户密码例如:usern ...
- 05-UIKit绘图演练
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- YUV主要采样格式理解
主要的采样格式有YCbCr 4:2:0.YCbCr 4:2:2.YCbCr 4:1:1和 YCbCr 4:4:4.其中YCbCr 4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也 ...
- 如何为 Drupal 7 网站添加悬浮的反馈按钮?
最近有客户咨询我们要怎么为 Drupal 网站添加悬浮按钮,方便访客能够链接到反馈表单页面.很幸运,使用 Feedback Simple 模块可以很容易实现. 在这篇短教程中,我将和大家分享如何添加链 ...
- 百度富文本编辑器UEditor安装配置全过程
网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器 一.下载并且设置百度富文本编辑器的样式 你可以去百度UEditor ...
- APP发布Xcode7
一.准备工作 1>准备3.5寸.4寸.4.7寸.5.5寸的程序截图至少个1张,如果支持iPad,那么iPad截图也要有.这些截图尽量截取页面漂亮的,因为这些截图是要放在AppStore中展示的. ...
- Spring Boot 内嵌Tomcat的端口号的修改
操作非常的简单,不过如果从来没有操作过,也是需要查找一下资料的,所以,在此我简单的记录一下自己的操作步骤以备后用! 1:我的Eclipse版本,不同的开发工具可能有所差异,不过大同小异 2:如何进入对 ...
- 学习总结 java 输入输出流
思维导图 代码实际演示 package com.hanqi.io; import java.io.*; public class Test1 { public static void main(Str ...
- Linq把一个DataTable根据一列去除重复数据
DataTable dt_temp = dt.AsEnumerable().Cast<DataRow>().GroupBy(p => p.Field<string>(&q ...