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

摘要:
使用远程数据库服务器时,需要制定身份验证方法:Windows和SQL server身份验证。数据库所属的登录名和密码。如果选择以SQL Server身份验证,则必须需要此项。SSPI是SecuritySupportProviderInterface的缩写。如果应与SQL Server建立进程内连接,ContextConnection“false”为true。CurrentLanguage/ASQLServer语言记录名称。加密“false”当此值为true时,如果服务器端安装了证书,SQL server将对客户端和服务器之间传输的所有数据使用SSL加密。Enlist'fals'true表示SQL Server连接池程序自动在创建线程的当前事务上下文中登记连接。NetworkLibrary-或-Net“dbssocn”是用于建立与SQL Server实例的连接的网络库。

在做数据开发的时候,常常需要用到数据库连接字符串,很多时候都不知道连接字符串中每个字段的具体含义,今天就在这里总结一下,方便以后使用。下面就用一个简单的例子开始

Data Source=(local); Database=WebDB; User ID=WebUser; Password=WebUser; pooling=true; min pool size=5; max pool size=512; connect timeout = 20;Integrated Security=SSPI

我们发现这个字符串中都是一个“”属性名=值“”和“;”构成的。在该字符串中必须包含的字段就是数据库的实例名称:

     1.Data Source=Server Name.在该字符串中必须包含的字段就是数据库的实例名称.如果是使用本地的数据库,可以为localhost或者是".",如果想要使用远程的数据库服务器,就要把正确的服务器给到Data Source属性。在使用远程数据库服务器的时候需要制定身份验证方式:windows 和SQL Server身份验证。

     2.DataBase=DBName。指定连接到的数据源,

    3.User ID=UserName; Password=WebUser。数据库所属的登录名和密码,如果在选择身份验证为SQL Server的时候,该项必须要。

    4.pooling=true。 确定是否使用连接池。如果值为真的话,连接就要从适当的连接池中获得,或者,如果需要的话,连接将被创建,然后被加入合适的连接池中。其缺省值为真。

   5.min pool size=5; max pool size=512 。连接池允许的连接数的最小值,其缺省值为0。连接池允许的连接数的最大值,其缺省值为100。

   6.connect timeout = value。以秒为单位,一个连接到数据库服务器在connection timeout之前必须连上服务器,否则就退出。

   7.身份验证。身份验证支持两种模式window和Sql Server,如果要使用windows验证模式需要将Integrated Security的值设置为SSPI。SSPI是Security Support Provider Interface的首字母简写(安全性支持提供者接口)。在所有的window NT操作系统上都支持,是使用windows身份验证可以使用的唯一接口,当把Integrated Security=SSPI等效于Integrated Security=true。如果使用了window验证,上面的user ID和Password都不起效果了。

如果要使用SQL Server验证模式,需要将Integrated Security=false。Integrated Security的值默认也是为false,所以也可以不加该字段。

关键字

默认值

说明

应用程序名称

N/A

应用程序的名称,或者“.Net SqlClient Data Provider”(如果不提供应用程序名称)。

Async

'false'

如果设置为 true,则启用异步操作支持。可识别的值为 true、false、yes 和 no。

AttachDBFilename

- 或 -

extended properties

- 或 -

Initial File Name

N/A

主数据库文件的名称,包括可连接数据库的完整路径名。只有具有 .mdf 扩展名的主数据文件才支持 AttachDBFilename。

如果主数据文件为只读,则附加操作将失败。

该路经可以是绝对路径,也可以是相对路径,这取决于是否使用 DataDirectory 替换字符串。如果使用 DataDirectory,则对应的数据库文件必须存在于替换字符串指向的目录的子目录中。

SQL Server 连接字符串和身份验证第1张说明:

远程服务器、HTTP 及 UNC 路径名不受支持。

必须按照如下方式使用关键字“database”(或其别名之一)指定数据库名称:

"AttachDbFileName=|DataDirectory|dataYourDB.mdf;integrated security=true;database=YourDatabase"

如果数据文件所在的目录中存在日志文件,并且在附加主数据文件时使用了“database”关键字,则会生成错误。这种情况下,请移除日志文件。附加了数据库后,系统将根据物理路径自动生成一个新的日志文件。

Connect Timeout

- 或 -

Connection Timeout

15

在终止尝试并产生错误之前,等待与服务器的连接的时间长度(以秒为单位)。

Context Connection

'false'

如果应对 SQL Server 进行进程内连接,则为 true。

Current Language

N/A

SQL Server 语言记录名称。

Data Source

- 或 -

Server

- 或 -

Address

- 或 -

Addr

- 或 -

Network Address

N/A

要连接的 SQL Server 实例的名称或网络地址。可以在服务器名称之后指定端口号:

server=tcp:servername, portnumber

指定本地实例时,始终使用 (local)。若要强制使用某个协议,请添加下列前缀之一:

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

SQL Server 连接字符串和身份验证第1张说明:

ADO.NET 2.0 不支持在 SQL Server 2000 或更低版本的共享内存上执行异步命令。但是,可以强制用 TCP 代替共享内存,方法是:向连接字符串中的服务器名称添加“tcp:”前缀,或者使用“本地主机”。

Encrypt

'false'

当该值为 true 时,如果服务器端安装了证书,则 SQL Server 将对所有在客户端和服务器之间传送的数据使用 SSL 加密。可识别的值为 true、false、yes 和 no。

Enlist

'false'

true 表明 SQL Server 连接池程序在创建线程的当前事务上下文中自动登记连接。

Failover Partner

N/A

在其中配置数据库镜像的故障转移合作伙伴服务器的名称。

.NET Framework 1.0 或 1.1 版不支持 Failover Partner 关键字。

Initial Catalog

- 或 -

Database

N/A

数据库的名称。

Integrated Security

- 或 -

Trusted_Connection

'false'

当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。

可识别的值为 true、false、yes、no 以及与 true 等效的 sspi(强烈推荐)。

MultipleActiveResultSets

'false'

如果为 true,则应用程序可以维护多活动结果集 (MARS)。如果为 false,则应用程序必须在执行该连接上的任何其他批处理之前处理或取消一个批处理中的多个结果集。

可识别的值为 true 和 false。

.NET Framework 1.0 或 1.1 版不支持该关键字。

Network Library

- 或 -

Net

'dbmssocn'

用于建立与 SQL Server 实例的连接的网络库。支持的值包括:

dbnmpntw(命名管道)

dbmsrpcn(多协议,Windows RPC)

dbmsadsn (Apple Talk)

dbmsgnet (VIA)

dbmslpcn(共享内存)

dbmsspxn (IPX/SPX)

dbmssocn (TCP/IP)

Dbmsvinn (Banyan Vines)

相应的网络 DLL 必须安装在要连接的系统上。如果不指定网络而使用一个本地服务器(比如“.”或“(local)”),则使用共享内存。在此示例中,网络库为 Win32 Winsock TCP/IP (dbmssocn),使用的端口为 1433。

 SQL Server 连接字符串和身份验证第3张复制代码
Network Library=dbmssocn;Data Source=000.000.000.000,1433;

Packet Size

8192

用来与 SQL Server 的实例进行通信的网络数据包的大小,以字节为单位。

Password

- 或 -

Pwd

N/A

SQL Server 帐户登录的密码。建议不要使用。为保持高安全级别,我们强烈建议您使用 Integrated Security 或 Trusted_Connection 关键字。

Persist Security Info

'false'

当该值设置为 false 或 no(强烈推荐)时,如果连接是打开的或者一直处于打开状态,那么安全敏感信息(如密码)将不会作为连接的一部分返回。重置连接字符串将重置包括密码在内的所有连接字符串值。可识别的值为 true、false、yes 和 no。

Replication

'false'

如果使用连接来支持复制,则为 true。

Transaction Binding

Implicit Unbind

控制与登记的 System.Transactions 事务关联的连接。

可能的值包括:

Transaction Binding=Implicit Unbind;

Transaction Binding=Explicit Unbind;

Implicit Unbind 可使连接在事务结束时从事务中分离。分离后,连接上的其他请求将以自动提交模式执行。在事务处于活动状态的情况下执行请求时,不会检查 System.Transactions.Transaction.Current 属性。事务结束后,其他请求将以自动提交模式执行。

Explicit Unbind 可使连接保持连接到事务,直到连接关闭或调用显式 SqlConnection.TransactionEnlist(null)。如果 Transaction.Current 不是登记的事务或登记的事务未处于活动状态,则引发 InvalidOperationException。

TrustServerCertificate

'false'

如果设置为 true,则使用 SSL 对通道进行加密,但不通过证书链对可信度进行验证。如果将 TrustServerCertificate 设置为 true 并将 Encrypt 设置为 false,则不对通道进行加密。可识别的值为 true、false、yes 和 no。有关更多信息,请参见连接字符串语法 (ADO.NET)。

Type System Version

N/A

指示应用程序期望的类型系统的字符串值。可能的值包括:

Type System Version=SQL Server 2000;

Type System Version=SQL Server 2005;

Type System Version=SQL Server 2008;

Type System Version=Latest;

如果设置为 SQL Server 2000,将使用 SQL Server 2000 类型系统。与 SQL Server 2005 实例连接时,执行下列转换:

XML 到 NTEXT

UDT 到 VARBINARY

VARCHAR(MAX)、NVARCHAR(MAX) 和 VARBINARY(MAX) 分别到 TEXT、NEXT 和 IMAGE。

如果设置为 SQL Server 2005,将使用 SQL Server 2005 类型系统。对 ADO.NET 的当前版本不进行任何转换。

如果设置为 Latest,将使用此客户端-服务器对无法处理的最新版本。这个最新版本将随着客户端和服务器组件的升级自动更新。

User ID

N/A

SQL Server 登录帐户。建议不要使用。为保持高安全级别,我们强烈建议您使用 Integrated Security 或 Trusted_Connection 关键字。

User Instance

'false'

一个值,用于指示是否将连接从默认的 SQL Server 速成版实例重定向到调用方帐户下运行的运行时启动的实例。

Workstation ID

本地计算机名称

连接到 SQL Server 的工作站的名称。

下表列出了 ConnectionString 内连接池值的有效名称。For more information, see SQL Server 连接池 (ADO.NET).

名称

默认值

说明

Connection Lifetime

0

当连接被返回到池时,将其创建时间与当前时间作比较,如果时间长度(以秒为单位)超出了由 Connection Lifetime 指定的值,该连接就会被销毁。这在聚集配置中很有用(用于强制执行运行中的服务器和刚置于联机状态的服务器之间的负载平衡)。

零 (0) 值将使池连接具有最大的连接超时。

Enlist

'true'

当该值为 true 时,池程序在创建线程的当前事务上下文中自动登记连接。可识别的值为 true、false、yes 和 no。

Load Balance Timeout

0

连接被销毁前在连接池中生存的最短时间(以秒为单位)。

Max Pool Size

100

池中允许的最大连接数。

Min Pool Size

0

池中允许的最小连接数。

Pooling

'true'

当该值为 true 时,系统将从适当的池中提取 SQLConnection 对象,或在需要时创建该对象并将其添加到适当的池中。可识别的值为 true、false、yes 和 no。

免责声明:文章转载自《SQL Server 连接字符串和身份验证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇node 升级android Bitmap用法总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows上PostgreSQL安装配置教程

Windows上PostgreSQL安装配置教程 这篇文章主要为大家详细介绍了Windows上PostgreSQL安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PostgreSQL的扩展PostGIS是最著名的开源GIS数据库。 安装PostgreSQL是第一步。 1.下载PostgreSQL的二进制安装文件。 PostgreSQL官网–...

Navicat,Dbeaver,heidiSql,DataGrip数据库连接工具比较

Navicat,Dbeaver,heidiSql,DataGrip数据库连接工具比较 1、Navicat 2、DBeaver 3、heidiSql 4、DataGrip 1、Navicat Navicat Premium是一个可多重连接的数据库管理工具,它可让你以单一程序同时连接到MySQL、Oracle、PostgreSQL、SQLite 及 S...

SQL Server 2005安装详解

一、安装SQL Sever 2005数据库 如果你使用Windows Server 2003 Enterprise Edition,注意同时安装SP1或更高版本补丁。 安装条件: 组件 要求 磁盘空间 所有版本的完全安装都需要350MB硬盘空间,而要安装示例数据库还需要390MB。 内存 512 MB建议使用1 GB或更多的内存(这里指的是...

SQL Server 查询优化器运行方式

一、结合实际,谈索引使用的误区 理论的目的是应用。虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析。下面我们将根据在实践中遇到的实际问题来谈一下索引使用的误区,以便于大家掌握索引建立的方法。 1、主键就是聚集索引 这种想法笔者认为是极端错误的,是对聚集索引的一种浪费。虽然SQL SERVER默...

关于nodejs中遇到mysql默认8小时连接断开机制的终极简单解决方案

由于mysql默认8小时连接无访问,就会断开.为此查了一下资料,有同种比较简单的解决方案: 1. 增加 MySQL 的 wait_timeout 属性的值。  修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status.  wait_tim...

MySQL数据库配置主从服务器实现双机热备

转自:http://www.cnblogs.com/cchun/p/3712637.html 一、安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22  二、配置MySQL主服务器(192.168.21.169) mysql -uroot -p #进...