什么是数据库连接字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是数据库连接字符串相关的知识,希望对你有一定的参考价值。

连接字符串的是一个以分号为界,划分键/值参数对的列表。连接字符串包含一个由一些属性名/值对组成的集合。每一个属性/值对都由分号隔开,如下所示:
PropertyName1="Value1";PropertyName2="Value2";PropertyName3="Value3";.....

同样,连接字符串必须包含SQL Server实例名称: Data Source=ServerName;

总的来说,数据库的连接字符串分为两种:Windows身份验证和SQL Server身份验证。每种方法都有各自的优缺点。但是遵循的基本规则是一样的,基本规则如下:

如果采用SQL Server身份验证方式,Data Source(数据源)、Initial Catalog(初始编目)、User ID(用户ID)、和Password(密码)等元素是必须的,下面这些选项都是可用的:

 ·Application Name(应用程序名称):应用程序的名称。如果没有被指定的话,它的值为.NET SqlClient Data Provider(数据提供程序).

 ·AttachDBFilename/extended properties(扩展属性)/Initial File Name(初始文件名):可连接数据库的主要文件的名称,包括完整路径名称。数据库名称必须用关键字数据库指定。

 ·Connect Timeout(连接超时)/Connection Timeout(连接超时):一个到服务器的连接在终止之前等待的时间长度(以秒计),缺省值为15。

 ·Connection Lifetime(连接生存时间):当一个连接被返回到连接池时,它的创建时间会与当前时间进行对比。如果这个时间跨度超过了连接的有效期的话,连接就被取消。其缺省值为0。

 ·Connection Reset(连接重置):表示一个连接在从连接池中被移除时是否被重置。一个伪的有效在获得一个连接的时候就无需再进行一个额外的服务器来回运作,其缺省值为真。

 ·Current Language(当前语言):SQL Server语言记录的名称。

 ·Data Source(数据源)/Server(服务器)/Address(地址)/Addr(地址)/Network Address(网络地址):SQL Server实例的名称或网络地址。

 ·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的工作站的名称。其缺省值为本地计算机的名称。
参考技术A 所谓数据库连接字符串就是在创建一个连接对象Connection时,需要传递一个字符串给它的构造函数,若用SqlServer数据库的提供程序创建连接对象,如:
string sqlconn="server=localhost;database=pubs;uid=sa;pwd= ";
SqlConnection conn=new SqlConnection(sqlconn);这样就将sqlconn这个字符串变量传递给SqlConnection的构造函数,完成SqlConnection对象的创建。
参考技术B 就是一个字符串,包含数据库的访问地址、用户名、密码等 参考技术C 连接数据库的字符串就是数据库连接字符串 参考技术D 数据库连接字符串是标识ADO.net用怎样的方式,链接那个数据库的字符串。链接不同的数据库,链接字符串的格式是不同的。在创建数据库连接的时候需要提供正确的连接字符串才能顺利进行数据库访问。

关于各种数据库连接字符串的格式,请参见:
http://newkadbbz.spaces.live.com/blog/cns!B9B9D1C8892F9662!259.entry本回答被提问者采纳

我应该在哪里存储数据库连接字符串? [关闭]

【中文标题】我应该在哪里存储数据库连接字符串? [关闭]【英文标题】:Where Should I Store a database Connection String? [closed] 【发布时间】:2011-05-09 18:56:54 【问题描述】:

我用 C# + WPF + MySQL 创建了一个应用程序。存储数据库连接字符串的最佳(最安全)方法是什么?

【问题讨论】:

它需要安全吗?如果您的服务在您的服务器上运行,为什么要保护连接字符串? (我假设您将其存储在应用程序配置中) 应用是如何部署的?是每个用户都有不同的连接字符串,还是所有用户都有一个连接字符串? 【参考方案1】:

将其存储在您的 App.config 文件中并始终对其进行加密。 This link 将向您展示如何加密部分配置文件。

【讨论】:

【参考方案2】:

你可以store connections strings in the configuration file。如有必要,您可以保护它们。

【讨论】:

如果我将连接字符串添加到 app.config - 这对我的连接字符串安全吗? 任何有权访问此 app.config 的人都可以读取可能包含密码等敏感信息的连接字符串。您可以加密此部分以提高安全性。 通过项目访问?还是undebagom?如何加密? app.config 文件与可执行文件一起部署,因此任何有权访问工作目录的人都可以打开此文件。就加密而言,我在回答中链接到的文章包含有关如何实现这一点的大量信息。 -1。我会为此解雇你。此文件是在更新时自动安装和卸载的文件。它是最糟糕的地方。您将代码放入另一个文件并在其中引用它,或者您使用自己的配置文件,这是我在过去 10 年中看到的每个项目所做的。【参考方案3】:

或者 - 注册表。您不存储它们的一个地方是 app.config 文件(whatever.exe.config),因为它只存在一次,并且程序文件夹不是用户可以更改的。每个用户的设置都不应该存在。

【讨论】:

【参考方案4】:

如果应用程序在服务器上运行,我会推荐 machine.config 文件并在 Fernando 推荐的同一个庄园中对其进行加密。如果要分发应用程序,那么我将在 app.config 中存储它们。

【讨论】:

【参考方案5】:

嗯,我总是遵循一种做法。每当我在 SL 或 WPF 中做某事时,我总是将服务层放在 SL/WPF 和数据库之间。

【讨论】:

【参考方案6】:

您可以使用使用 Visual Studio 时可用的 visual studio settings / 属性。它们使用起来非常简单,如果您使用用户设置,它会保存在用户的应用数据目录中,因此它是半隐藏的,远离修补。如果你愿意的话,你所要做的就是某种形式的加密来完全锁定它。

我认为 Visual Studio 设置的最大优点是易于使用。

【讨论】:

以上是关于什么是数据库连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

C#连接MySql数据库的连接字符串是啥?

winform的连接字符串

我应该在哪里存储数据库连接字符串? [关闭]

JAVA 中的 MS-SQL 连接字符串

“无法建立数据库连接。检查连接字符串、用户名和密码”背后的根错误是啥。

C#WinForm中数据库连接字符串应该放在哪