Encrypt(加密):当值为真时,如果服务器安装了授权证书,SQL Server就会对所有在客户和服务器之间传输的数据使用SSL加密。被接受的值有true(真)、false(伪)、yes(是)和no(否)。
Enlist(登记):表示连接池程序是否会自动登记创建线程的当前事务语境中的连接,其缺省值为真。
Database(数据库)/Initial Catalog(初始编目):数据库的名称。
Integrated Security(集成安全)/Trusted Connection(受信连接):表示Windows认证是否被用来连接数据库。它可以被设置成真、伪或者是和真对等的sspi,其缺省值为伪。
Max Pool Size(连接池的最大容量):连接池允许的连接数的最大值,其缺省值为100。
Min Pool Size(连接池的最小容量):连接池允许的连接数的最小值,其缺省值为0。
Network Library(网络库)/Net(网络):用来建立到一个SQL Server实例的连接的网络库。支持的值包括: dbnmpntw (Named Pipes)、dbmsrpcn (Multiprotocol/RPC)、dbmsvinn(Banyan Vines)、dbmsspxn (IPX/SPX)和dbmssocn (TCP/IP)。协议的动态链接库必须被安装到适当的连接,其缺省值为TCP/IP。
Packet Size(数据包大小):用来和数据库通信的网络数据包的大小。其缺省值为8192。
Password(密码)/Pwd:与帐户名相对应的密码。
Persist Security Info(保持安全信息):用来确定一旦连接建立了以后安全信息是否可用。如果值为真的话,说明像用户名和密码这样对安全性比较敏感的数据可用,而如果值为伪则不可用。重置连接字符串将重新配置包括密码在内的所有连接字符串的值。其缺省值为伪。
Pooling(池):确定是否使用连接池。如果值为真的话,连接就要从适当的连接池中获得,或者,如果需要的话,连接将被创建,然后被加入合适的连接池中。其缺省值为真。
User ID(用户ID):用来登陆数据库的帐户名。
Workstation ID(工作站ID):连接到SQL Server的工作站的名称。其缺省值为本地计算机的名称。
解决SQL Server 连接时的一些基本问题后的若干初浅心得
学生做了一个题库系统,用C#写的ASP应用程序,数据库用SQL Server2000,交给我看看。放到服务器上后,出现问题。反复调整后发现了解决的方法,其实很简单。回过头去看了看,发现是自己对SQL Server的连接语句和用户权限的认识不足所造成的。下面将我的一些心得以及网上查到的有关资料汇集一下,以为后来者借鉴,当然很肤浅。
1、SQL Server的连接方式
以本地服务器(LocalHost),数据库(Northwind)为例,可以有以下一些连接方式
SqlConnection conn=new SqlConnection( "Server=LocalHost;Integrated Security=SSPI;Database=Northwind"); SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;"); SqlConnection conn = new SqlConnection(" Data Source=LocalHost;Initial Catalog=Northwind;Integrated Security=SSPI;Persist Security Info=False;Workstation Id=XURUI;Packet Size=4096; "); SqlConnection myConn = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Database=northwind;Server=LocalHost"); SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Data Source=LocalHost;Connect Timeout=900");
心得:
a.Server和Database,Data Source和Initial Catalog配对使用的,可以互相替换(见笑)
b.Integrated Security默认值是False,此时需要提供Uid和Pwd,即将以Sql Server 用户身份登陆数据库;如果设置为True,Yes 或 SSPI,这不能出现Uid和Pwd,将以Windows用户省份登陆数据库。强烈推荐用后一种形式,安全性更高。
c.Integrated Security和Persist Security Info同时出现,后者设置为False,可保证信息安全。
更多字符串连接说明请看MSDN:
连接字符串的书写应该熟练后应该没有什么问题,我是再看别人的程序,说实话有些东东还真不清楚。但连接不上的问题出现后,得解决呀。所以必须要弄懂这些关键字的意义,修改后再测试。
2、SQL Server的用户设置
问题一、采用连接字符串
复制代码 代码如下:
SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Data Source=LocalHost;Connect Timeout=900");
错误:
用户"sa"登陆失败,没有可信任的Sql Server连接
查资料后找到解决方法:
原因:Sql Server的验证方式需要设置为Sql Server验证和Windows集成验证的混合方式,如果仅设置为后一种方式,就会出像上述问题
解决:运行Sql Server的企业管理器,点击服务器,在右键菜单中选择属性,选安全性,更改验证方式即可
问题二、采用连接字符串
复制代码 代码如下:
SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");
错误:
用户"computername\IWAM_servername"登陆失败
原因:SQL Server的登陆用户中不包括IWAM_servername