在使用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连接字符串学习的更多相关文章

  1. .NET SQL Server连接字符串句法

    .NET SQL Server连接字符串句法 数据库的连接性已经发展成为应用程序开发的一个标准方面.数据库连接字符串现在已经成为每个项目的标准必备条件.我发现自己为了找到所需要的句法,经常要从另外一个 ...

  2. SQL Server 连接字符串和身份验证 学习

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.          PropertyName1=Value1; ...

  3. [ASP.NET]SQL Server 连接字符串和身份验证

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1; Property ...

  4. SQL Server 连接字符串和身份验证详解

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.          PropertyName1=Value1; ...

  5. SQL Server 连接字符串和身份验证

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.         PropertyName1=Value1;P ...

  6. Sql Server连接字符串

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.          PropertyName1=Value1; ...

  7. sql server连接字符串与tcp/ip开启

    连接字符串1:Data Source=localhost,1433;User ID=sa;Password=123;Initial Catalog=test;Min Pool Size=1;Max P ...

  8. SQL Server 连接字符串总结

    这里记录的是c# 在vs中连接sql server数据库中的连接字符串的总结. 1.标准安全连接 Data Source = myServerAddress;Initial Catalog = myD ...

  9. SQL Server 连接字符串备忘

    今天把服务器上的远程访问关了,把连接字符串中的IP地址改成了.,然后就一直连不上.弄了半天,原来是本地连接时非默认实例,不能带端口号. 1.原来的连接服务器地址是:192.168.0.1SQL2005 ...

随机推荐

  1. php 操作mysql 数据库

    以上是对数据库操作前的准备工作: mysql_num_rows(); //取结果集的行数,一个记录为一行,也就是取记录的条数 mysql_query(); //执行sql语句,返回结果的资源标示符 m ...

  2. ext 3.2 tree 在IE10中点击事件失效的bug

    ext3.2 中的tree在IE中进行兼容性测试,遇到IE10时,无法点击,其他版本的IE(7.8.9.11)均正常.此bug是由于ext-all.js中的getAttributeNS方法不能兼容IE ...

  3. Celery 使用简介

    转自:http://liuzxc.github.io/blog/celery/ Celery 是一个简单.灵活且可靠的,处理大量消息的分布式系统,它是一个专注于实时处理的任务队列, 同时也支持任务调度 ...

  4. 立体匹配:关于理解middlebury提供的立体匹配代码后的精减

    Middlebury立体匹配源码总结 优化方法 图像可否预处理 代价计算可否采用BT方式 可选代价计算方法 可否代价聚合 可否MinFilter优化原始代价 WTA-Box 可以 可以 AD/SD 可 ...

  5. 【转载】eclipse调试arm裸机程序

    一.集成开发环境 软件部分:eclipse , GDB Server , Jlink软件 硬件部分:Jlink硬件 准备工作1:从SD/NOR Flash启动,格式化nand flash 准备工作2: ...

  6. What is Split Brain in Oracle Clusterware and Real Application Cluster (文档 ID 1425586.1)

    In this Document   Purpose   Scope   Details   1. Clusterware layer   2. Real Application Cluster (d ...

  7. php文字水印和php图片水印实现代码

    本文章向码农们介绍php文字水印和php图片水印实现代码,需要的码农可以参考一下. php 文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件. 实现 ...

  8. Jmeter如何设置关联

    1.打开飞机网站的第三个设置:2.录制一个登陆和退出脚本,导出为jmx文件:3.Jmeter导入第二步中的文件:4.添加察看结果树,运行一次,会发现一个错误(没有输入正确的usersession)5. ...

  9. 【测试】trunc和round的区别

    trunc是截断:round是四舍五入:下面通过一个例子具体看一下trunc和round的不同 SQL),trunc() from dual; TRUNC() TRUNC() ------------ ...

  10. oracle 清除当前用户的回收站

    --清除当前用户的回收站:purge recyclebin;  --删除表数据truncate table --查看当前用户回收站select * from user_recyclebin t;