【dotNET学习笔记】2009-12-10 主题:SQL数据库连接字符串

来源:互联网 发布:php如何提高网站安全性 编辑:程序博客网 时间:2024/05/21 07:54

dotNET学习笔记

2009-12-10

 

主题:SQL数据库连接字符串

 

1 SQL数据库连接字符串的常用属性

以下引用的表格来自:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

准确的说下面这些属性是我现在常用到的,其它的指定连接池大小以后也应该会用到。

 

1.1 Data SourceServerAddressAddrNetwork Address

Keyword

属性名称

Default

默认值

Description

描述

Data Source

-or-

Server

-or-

Address

-or-

Addr

-or-

Network Address

N/A

The name or network address of the instance of SQL Server to which to connect. The port number can be specified after the server name:

server=tcp:servername, portnumber

When specifying a local instance, always use (local). To force a protocol, add one of the following prefixes:

np:(local), tcp:(local), lpc:(local)

Note:

ADO.NET 2.0 does not support asynchronous commands over shared memory for SQL Server 2000 or earlier. However, you can force the use of TCP instead of shared memory, either by prefixing tcp: to the server name in the connection string, or by using localhost.

描述:

用于连接的SQL服务器实例的网络地址,服务器名称后面可接端口号。

指示本地实例的时候使用(local)。强制性的加上协议可以在地址前加前缀。

 

1.2 Initial CatalogDatabase

Keyword

Default

Description

Initial Catalog

-or-

Database

N/A

The name of the database.

描述:

数据库名称。

 

1.3 Integrated SecurityTrusted_Connection

Keyword

Default

Description

Integrated Security

-or-

Trusted_Connection

'false'

When false, User ID and Password are specified in the connection. When true, the current Windows account credentials are used for authentication.

Recognized values are true, false, yes, no, and sspi (strongly recommended), which is equivalent to true.

If User ID and Password are specified and Integrated Security is set to true, the User ID and Password will be ignored and Integrated Security will be used.

描述:

设为false则需要在连接时指明用户名和密码。设为true,则使用当前Windows账户进行验证。

可以识别的值为truefalseyesno,和sspi(强烈推荐使用,跟true效果相同)。

 

1.4 Persist Security Info

Keyword

Default

Description

Persist Security Info

'false'

When set to false or no (strongly recommended), security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open state. Resetting the connection string resets all connection string values including the password. Recognized values are true, false, yes, and no.

描述:

当设为falseno(强烈推荐使用)时,一些安全敏感信息,比如密码,在连接打开时将作为连接的一部分被返回。重置连接字符串将会重置连接字符串相关的一切值,包括密码。可以识别的值为truefalseyesno

 

1.5 User ID

Keyword

Default

Description

User ID

N/A

The SQL Server login account. Not recommended. To maintain a high level of security, we strongly recommend that you use the Integrated Security or Trusted_Connection keywords instead.

描述:

SQL服务器的登录账户名,不推荐(前面讲Integrated SecurityTrusted_Connection的时候推荐使用sspi从而不用指定账户名和密码)。

 

1.6 PasswordPwd

Keyword

Default

Description

Password

-or-

Pwd

N/A

The password for the SQL Server account logging on. Not recommended. To maintain a high level of security, we strongly recommend that you use the Integrated Security or Trusted_Connection keyword instead.

描述:

SQL服务器的登录账户密码,不推荐(前面讲Integrated SecurityTrusted_Connection的时候推荐使用sspi从而不用指定账户名和密码)。

 

2 连接字符串实例

2.1 创建连接字符串

网站根目录下的有个名为Web.configxml文件,在其中的<configuration>标签级别中加入<connectionStrings>标签,设定一个公用的数据库连接字符串:

 

<connectionStrings>

      <add name="MyConnStr1" connectionString="Server=SSW; Database=Compass; Integrated Security=false; User ID=sa; Pwd=123456;"/>

 

      <add name="MyConnStr2" connectionString="Data Source=127.0.0.1; Initial Catalog=test; Integrated Security=true;"/>

 

      <add name=" " connectionString=" "/><!-- 还可以创建其它连接字符串 -->

</connectionStrings>

 

2.1.1 MyConnStr1

1name="MyConnStr1"

指定这个连接字符串的名称。

 

2Server=SSW;

指定连接的数据库实例名称。

 

3Database=Compass;

指定连接的数据库名称。

 

4Integrated Security=false;

不使用集成安全模式,而是指定用户名和密码。

 

5User ID=sa;

指定登录数据库服务器的登录名。

 

6Pwd=123456;

指定登录密码。安全起见密码应该加密,后面我会学习到的。

 

2.1.2 MyConnStr2

MyConnStr1同理,只不过使用的是Windows身份验证,不需要指定用户名和密码。

 

2.2 引用连接字符串

.cs文件中引用设定的连接字符串。

首先必须加入“using System.Configuration;”语句,然后:

 

string connStr = ConfigurationManager.ConnectionStrings["MyConnStr1"].ConnectionString.ToString();

 

ConnectionStrings["MyConnStr1"]定位到<connectionStrings>标签下名为“MyConnStr1”的标签,用.ConnectionString取其ConnectionString属性(标签有nameConnectionString两个属性),最后用ToString方法将其转换为string对象。

 

3 SQLServer数据库相关设定(我用的是MS SQLServer 2008

3.1 启用混合登录模式

刚才的第一个连接字符串使用用户名sa登录,这还需要在数据库中启用混合登录模式。

1)右键单击服务器实例↓

 

2)在“选择页”里选择“安全性”,在右边选择“SQL Server Windows 身份验证模式”(即混合验证模式)↓

 

3.2 修改密码,开启账户

1)在对象资源管理器中右键单击“安全性”下“登录名”中的“sa”↓

 

2)打开sa的登陆属性窗口,在“常规”中将密码改掉(我忘记原始密码了,只能改掉)↓

 

3)接着在“状态”中将“是否允许连接到数据库引擎”设为“授予”,将“登录”设为“启用”↓

 

这样就可以使用账户sa登录数据库了。