【2017年整理】你真的了解连接字符串吗?

上传人:豆浆 文档编号:1041871 上传时间:2017-05-26 格式:DOCX 页数:10 大小:30.06KB
返回 下载 相关 举报
【2017年整理】你真的了解连接字符串吗?_第1页
第1页 / 共10页
【2017年整理】你真的了解连接字符串吗?_第2页
第2页 / 共10页
【2017年整理】你真的了解连接字符串吗?_第3页
第3页 / 共10页
【2017年整理】你真的了解连接字符串吗?_第4页
第4页 / 共10页
【2017年整理】你真的了解连接字符串吗?_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《【2017年整理】你真的了解连接字符串吗?》由会员分享,可在线阅读,更多相关《【2017年整理】你真的了解连接字符串吗?(10页珍藏版)》请在金锄头文库上搜索。

1、连接字符串关键字连接字符串的格式是使用分号分隔的键/值参数对列表:keyword1=value; keyword2=value忽略空格,关键字不区分大小写,尽管值可能会区分大小写,这取决于数据源的大小写。要加入包含分号、单引号或双引号的值,值必须加双引号。 持续安全信息连接字符串中 Persist Security Info 关键字的默认设置为 false。 Persist Security Info=false;如果将该关键字设置为 true 或 yes,将允许在打开连接后,从连接中获得涉及安全性的信息(包括用户标识和密码)。如果在建立连接时必须提供用户标识和密码,最安全的方法是在使用信息打

2、开连接后丢弃这些信息,在 Persist Security Info 设置为 false 或 no 时会发生这种情况。当您向不可信的源提供打开的连接,或将连接信息永久保存到磁盘时,这点尤其重要。如果将 Persist Security Info 保持为 false,可帮助确保不可信的源无法访问连接中涉及安全性的信息,并帮助确保任何涉及安全性的信息都不会随连接字符串信息在磁盘上持久化。使用 Windows 身份验证我们建议您使用 Windows 身份验证(通常称为集成安全性)连接到服务器数据库上。要指定 Windows 身份验证,可以对 SQL Server .NET Framework 数据提

3、供程序使用下列两个键/值对中的任意一个:Integrated Security=true;Integrated Security=SSPI;但是,只有第二个将适用于 OleDb.NET Framework 数据提供程序。为 ConnectionString 设置 Integrated Security=true 将引发异常。对于 ODBC.NET Framework 数据提供程序,必须使用以下键/值对指定 Windows 身份验证。Trusted_Connection=yes;SqlClient 连接字符串SqlConnection 的 ConnectionString 属性可以为 SQL S

4、erver 7.0 或更高版本的数据库获取或设置连接字符串。如果需要连接到早期版本的 SQL Server,必须使用 OleDb.NET 数据提供程序。 SqlClient 连接字符串语法连接到 SQL Server 数据库的语法很灵活。下列每个语法形式均将使用集成安全性连接到本地服务器上的 AdventureWorks 数据库。始终通过名称或通过关键字 (local) 指定服务器。 Persist Security Info=False;Integrated Security=true;Initial Catalog=AdventureWorks;Server=MSSQL1Persist S

5、ecurity Info=False;Integrated Security=SSPI;database=AdventureWorks;server=(local)Persist Security Info=False;Trusted_Connection=True;database=AdventureWorks;server=(local)要强制使用某个协议,请添加下列前缀之一:np:(local), tcp:(local), lpc:(local)对于 SQL Server 身份验证,使用此语法指定用户名和密码,其中的星号表示有效的用户名和密码。Persist Security Info=

6、False;User ID=*;Password=*;Initial Catalog=AdventureWorks;Server=MySqlServerOleDb 连接字符串通过 OleDbConnection 的 ConnectionString 属性可以为 OLE DB 数据源(例如 Microsoft Access 或 SQL Server 6.5 或更低版本)获取或设置连接字符串。对 SQL Server 7.0 或更高版本使用 SqlConnection。 OleDb 连接字符串语法必须为 OleDbConnection 连接字符串指定提供程序名称。以下连接字符串使用 Jet 提供程

7、序连接到 Microsoft Access 数据库。注意,如果数据库未受保护(默认设置),UserID 和 Password 关键字是可选的。Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:Northwind.mdb;User ID=Admin;Password=; 如果数据库受保护,必须提供工作组信息文件的位置。Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:Northwind.mdb;Jet OLEDB:System Database=d:NorthwindSystem.mdw;User ID=*

8、;Password=*;对于 SQL Server 6.5 或更低版本,请使用 sqloledb 关键字。Provider=sqloledb;Data Source=MySqlServer;Initial Catalog=pubs;User Id=*;Password=*;不要使用通用数据链接文件可以在通用数据链接 (UDL) 文件中提供 OleDbConnection 的连接信息;但是,应避免这样做。UDL 文件未加密,会以明文的形式公开连接字符串信息。因为 UDL 文件对应用程序来说是基于外部文件的资源,所以,无法使用 .NET Framework 保护其安全。 连接到 ExcelMicr

9、osoft Jet 提供程序用于连接到 Excel 工作簿。在以下连接字符串中,Extended Properties 关键字设置 Excel 特定的属性。“HDR=Yes;”指示第一行中包含列名,而不是数据,“IMEX=1;”通知驱动程序始终将“互混”数据列作为文本读取。注意Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:MyExcel.xls;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1注意,Extended Properties 所需的双引号必须还要加双引号。 Data Shape 提供程序连接字符

10、串语法在使用 Microsoft Data Shape 提供程序时,应同时使用 Provider 和 Data Provider 关键字。以下示例使用 Shape 提供程序连接到 SQL Server 的本地实例。Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI; Odbc 连接字符串OdbcConnection 的 ConnectionString 属性可以为 OLE DB 数据源获取或设置连接字符串。以下连接字符串使用 M

11、icrosoft 文本驱动程序。Driver=Microsoft Text Driver (*.txt; *.csv);DBQ=d:bin有关 ODBC 连接字符串语法的更多信息,请参见 ConnectionString。Oracle 连接字符串OracleConnection 的 ConnectionString 属性可以为 OLE DB 数据源获取或设置连接字符串。Data Source=Oracle9i;User ID=*;Password=*;附录 一 热心网友的解答大家看我上面的字符串有问题吗?很负责任的告诉你,有问题,而且执行到sqlconnection.open()时,会抛出一个

12、异常:“用户 登录失败。该用户与可信 SQL Server 连接无关联。”这是为什么呢?查了一下 msdn才发现,上面的字符串同时集成了 windows身份认证和 sqlserver混合身份认证。当在字符串中指定:Integrated Security=SSPI时,字符串会基层 windows方式来验证,也就是说数据库服务器会在域账户中检查 sa账户是否存在而且是否有权限连接 web2.0这个数据库。很显然,我的域账户中没有 sa。对于 Integrated Security属性,还有几点需要注意:(1)如果数据提供程序是 sqlserver .net framework(通俗的说就是如果你采

13、用 sqlserver作为数据库) 那么下面三种方式都可以用:Integrated Security=true;Integrated Security=SSPI;Trusted_Connection=True;另外 Provider 是 System.Data.SqlClient如:混合身份认证方式:集成 windows方式:(2)如果数据库提供程序是 oledb.Net framework(通俗的说就是你采用access,excel 等)那么只能采用下面的方式Integrated Security=SSPI;而且必须为 OleDbConnection 连接字符串指定提供程序名称。以下连接字符

14、串使用 Jet 提供程序连接到 Microsoft Access 数据库。注意,如果数据库未受保护(默认设置),UserID 和 Password 关键字是可选的。Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:Northwind.mdb;User ID=Admin;Password=;如果数据库受保护,必须提供工作组信息文件的位置。Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:Northwind.mdb;Jet OLEDB:System Database=d:NorthwindSystem.mdw

15、;User ID=*;Password=*;对于 SQL Server 6.5 或更低版本,请使用 sqloledb 关键字。Provider=sqloledb;Data Source=MySqlServer;Initial Catalog=pubs;User Id=*;Password=*;(3)如果你使用传统的 ODBC .Net framework 那么必须使用下面的方式:Trusted_Connection=yes;最后我们再说一下:Persist Security Info 属性。有时我们会在连接字符串中看到如下配置节:Persist Security Info=False;Inte

16、grated Security=SSPI;database=Northwind;server=(local)这个属性是干嘛的呢?MSDN 有如下解释:持续安全信息(Persist Secutiry Info)连接字符串中 Persist Security Info 关键字的默认设置为 false。 Persist Security Info=false;如果将该关键字设置为 true 或 yes,将允许在打开连接后,从连接中获得涉及安全性的信息(包括用户标识和密码)。如果在建立连接时必须提供用户标识和密码,最安全的方法是在使用信息打开连接后丢弃这些信息,在Persist Security Info 设置为 false 或 no 时会发生这种情况。当您向不可信的源提供打开的连接,或将连接信息永久保存到磁盘时,这点尤其重要。如果将 Persist Security Info 保持为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号