将连接字符串关键字与适用于 SQL Server 的 OLE DB 驱动程序结合使用

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics分析平台系统(PDW)Microsoft Fabric中的SQL数据库

下载 OLE DB 驱动程序

OLE DB Driver for SQL Server 中的某些 API 使用连接字符串来指定连接属性。 连接字符串是关键字和关联的值的列表;每个关键字标识特定的连接属性。

注意

OLE DB Driver for SQL Server 允许连接字符串出现歧义,以保持向后兼容性(例如,可以多次指定一些关键字,并且允许冲突关键字,并根据位置或优先级进行解决)。 OLE DB Driver for SQL Server 的未来版本可能不允许连接字符串中存在多义性。 在修改要使用 OLE DB Driver for SQL Server 的应用程序时,最好消除连接字符串多义性上的任何依赖项。

以下各节介绍了可与适用于 SQL Server 的 OLE DB 驱动程序配合使用的关键字,以及在将适用于 SQL Server 的 OLE DB 驱动程序用作数据提供程序时可与 ActiveX Data Objects (ADO) 配合使用的关键字。

OLE DB 驱动程序连接字符串关键字

OLE DB 应用程序可以用两种方式初始化数据源对象:

  • IDBInitialize::Initialize
  • IDataInitialize::GetDataSource

在第一种情况下,可以通过使用提供程序字符串,在DBPROP_INIT_PROVIDERSTRING属性集中设置DBPROPSET_DBINIT属性来初始化连接属性。 第二种情况下,可以将初始化字符串传递给 IDataInitialize::GetDataSource 方法来初始化连接属性。 两种方法都初始化相同的 OLE DB 连接属性,但使用不同的关键字集合。 使用的 IDataInitialize::GetDataSource 关键字集至少是初始化属性组中属性的说明。

将对应的 OLE DB 属性设置为某个默认值或显式设置为某个值的任何提供程序字符串设置,OLE DB 属性值将覆盖提供程序字符串中的设置。

提供程序字符串中的布尔属性通过 DBPROP_INIT_PROVIDERSTRING 值进行设置,并使用 yesno 值。 初始化字符串中设置的布尔属性通过使用值 IDataInitialize::GetDataSourcetrue 来进行设置。

使用 IDataInitialize::GetDataSource 的应用程序还可以使用关键字 IDBInitialize::Initialize,但仅适用于没有默认值的属性。 如果应用程序在初始化字符串中同时使用 IDataInitialize::GetDataSource 关键字和 IDBInitialize::Initialize 关键字,系统将采用 IDataInitialize::GetDataSource 关键字设置。 建议应用程序不要在连接字符串中使用IDBInitialize::InitializeIDataInitialize:GetDataSource关键字,因为将来的版本中可能不会维护此行为。

注意

通过 IDataInitialize::GetDataSource 传递的连接字符串被转换为属性,并通过 IDBProperties::SetProperties 应用这些属性。 如果组件服务在其中 IDBProperties::GetPropertyInfo找到了属性说明,则此属性将作为独立属性应用。 否则,它将通过 DBPROP_PROVIDERSTRING 属性应用。 例如,如果指定连接字符串 Data Source=server1;Server=server2Data Source 则会设置为属性,但 Server 会进入提供程序字符串。

如果指定了同一提供程序特定属性的多个实例,将使用第一个属性的第一个值。

使用 IDBInitialize::Initialize

使用 DBPROP_INIT_PROVIDERSTRINGIDBInitialize::Initialize 的 OLE DB 应用程序所用连接字符串具有以下语法:

  • connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
  • empty-string ::=
  • attribute ::= attribute-keyword=[{]attribute-value[}]
  • attribute-value ::= character-string
  • attribute-keyword ::= identifier

属性值可以选择放在大括号中,并且最好这样做。 此做法可以避免当属性值包含非字母数字字符时出现问题。 值中的第一个右大括号会被视为值的结束标记,因此值中不能包含右大括号字符。

连接字符串关键字的 = 符号之后的空白字符将被解释为文本,即使该值在引号内也是如此。

下表描述了可用于 DBPROP_INIT_PROVIDERSTRING的关键字。

关键字 初始化属性 说明
Addr SSPROP_INIT_NETWORKADDRESS Address 的同义词。
Address SSPROP_INIT_NETWORKADDRESS 运行 SQL Server 实例的服务器的网络地址。 Address 通常是服务器的网络名称,但可以是其他名称,例如管道、IP 地址或 TCP/IP 端口和套接字地址。

如果指定了 IP 地址,请确保在 SQL Server 配置管理器中启用了 TCP/IP 或 named pipes 协议。

Address的值在使用 SQL Server 的 OLE DB 驱动程序时,相对于Server在连接字符串中传递的值具有优先权。 Address=;连接到Server关键字中指定的服务器,而Address= ;, Address=.;Address=localhost;Address=(local);均会引发与本地服务器的连接。

关键字的完整语法 Address 如下所示:

[protocol:]Address[,port|\pipe\pipename]

protocol 可以是 tcp (TCP/IP)、 lpc (共享内存)或 np (命名管道)。 有关协议的详细信息,请参阅 配置客户端协议

如果未指定 协议Network 关键字,则 OLE DB Driver for SQL Server 将使用 SQL Server 配置管理器 中指定的协议顺序。

port是用于连接到指定服务器的端口。 默认情况下,SQL Server 使用端口 1433
APP SSPROP_INIT_APPNAME 用于标识应用程序的字符串。
ApplicationIntent SSPROP_INIT_APPLICATIONINTENT 连接到服务器时声明应用程序工作负荷类型。 可能值为 ReadOnlyReadWrite

默认为 ReadWrite。 有关对 Always On 可用性组 的 OLE DB Driver for SQL Server 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持
AttachDBFileName SSPROP_INIT_FILENAME 可附加数据库的主文件的名称(包括完整路径名)。 若要使用 AttachDBFileName,还必须使用提供程序字符串 Database 关键字指定数据库名称。 如果该数据库以前已经附加,则 SQL Server 不重新附加它;而是使用已附加的数据库作为连接的默认数据库。
Authentication 1 SSPROP_AUTH_MODE 指定使用的 SQL 或 Microsoft Entra 身份验证。 有效值是:
  • (not set):身份验证模式由其他关键字确定。
  • ActiveDirectoryIntegrated:将身份验证与 Microsoft Entra ID 集成。

  • 注意:关键字 ActiveDirectoryIntegrated 还可用于对 SQL Server 进行 Windows 身份验证。 它将替换 Integrated Security(或 Trusted_Connection)身份验证关键字。 使用 Integrated Security (或Trusted_Connection) 关键字或其相应属性的应用程序应将关键字的值(或其相应属性)设置为AuthenticationActiveDirectoryIntegrated启用新的加密和证书验证行为。

  • ActiveDirectoryInteractive:使用 Microsoft Entra 标识进行交互式身份验证。 此方法也支持 Microsoft Entra 多重身份验证。
  • ActiveDirectoryMSI托管身份 身份验证。 对于用户分配的标识,用户 ID 应设置为用户标识的对象 ID。
  • ActiveDirectoryServicePrincipal:使用 Microsoft Entra 服务主体进行身份验证。 用户 ID 应设置为应用程序(客户端)ID。 密码应设置为应用程序(客户端)机密。
  • ActiveDirectoryPassword[已弃用] 已弃用Microsoft Entra 标识的用户 ID 和密码身份验证。 有关详细信息,请参阅 Microsoft Entra 用户名和密码身份验证
  • SqlPassword:使用用户 ID 和密码进行身份验证。

  • 注意:使用 SQL Server 身份验证的应用程序应设置 Authentication 关键字的值(或其相应的属性),以 SqlPassword 启用 新的加密和证书验证行为
Auto Translate SSPROP_INIT_AUTOTRANSLATE AutoTranslate 的同义词。
AutoTranslate SSPROP_INIT_AUTOTRANSLATE 配置 OEM/ANSI 字符转换。 已识别的值为 yesno
ConnectRetryCount SSPROP_INIT_CONNECT_RETRY_COUNT 控制在连接丢失的情况下的重新连接尝试次数。 有效值的范围为 0255。 默认值为 1。 值 0 将导致不尝试重新连接。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力
ConnectRetryInterval SSPROP_INIT_CONNECT_RETRY_INTERVAL 指定在连接丢失的情况下,每次连接重试尝试之间的秒数。 有效值的范围为 160。 默认值为 10。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力
Database DBPROP_INIT_CATALOG 数据库名称。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定要使用的数据类型的处理模式。 对于提供程序数据类型,可识别的值为 0;对于 SQL Server 2000 (8.x) 数据类型,可识别的值为 80
Encrypt 1 SSPROP_INIT_ENCRYPT 指定在通过网络发送数据之前是否应当将其加密。 可能值为 OptionalMandatoryStrict。 默认值为 Mandatory。 对于版本 18.x.x,请参阅 MSOLEDBSQL 主版本差异
FailoverPartner SSPROP_INIT_FAILOVERPARTNER 用于数据库镜像的故障转移服务器的名称。
FailoverPartnerSPN SSPROP_INIT_FAILOVERPARTNERSPN 故障转移伙伴的 SPN。 默认值为空字符串。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。
HostNameInCertificate SSPROP_INIT_HOST_NAME_CERTIFICATE 验证 SQL Server TLS/SSL 证书时要使用的主机名。 HostNameInCertificate如果未设置关键字,驱动程序将使用Server连接 URL 上的关键字值作为主机名来验证 SQL Server TLS/SSL 证书。
注意:如果服务器证书受信任,则忽略此属性。 如果 Encrypt 设置为 Strict,将始终验证证书。
Language SSPROP_INIT_CURRENTLANGUAGE SQL Server 语言。
MarsConn SSPROP_INIT_MARSCONNECTION 如果服务器是 SQL Server 2005 (9.x) 或更高版本,则启用或禁用连接上的多个活动结果集 (MARS)。 可能值为 yesno。 默认值为 no
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER 在连接到 SQL Server 可用性组或 SQL Server 故障转移群集实例的可用性组侦听程序时,应始终指定 MultiSubnetFailover=YesMultiSubnetFailover=Yes 配置 SQL Server 的 OLE DB 驱动程序,以提供更快速的检测和连接到当前活动服务器。 可能值为 YesNo。 默认为 No。 例如:

MultiSubnetFailover=Yes

有关对 Always On 可用性组 的 OLE DB Driver for SQL Server 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持
Net SSPROP_INIT_NETWORKLIBRARY Network 的同义词。
Network SSPROP_INIT_NETWORKLIBRARY 用于与组织中的 SQL Server 实例建立连接的网络库。
Network Library SSPROP_INIT_NETWORKLIBRARY Network 的同义词。
PacketSize SSPROP_INIT_PACKETSIZE 表格格式数据流 (TDS) 包大小。 默认值为 0 (实际值将由服务器确定)。
PersistSensitive DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受字符串 yesno 作为值。 如果使用的是 no,则不允许数据源对象保留敏感的身份验证信息
PWD DBPROP_AUTH_PASSWORD SQL Server 登录密码。
Server DBPROP_INIT_DATASOURCE SQL Server 实例的名称。 该值必须是服务器的网络名称、IP 地址或者 SQL Server 配置管理器别名。

如果不指定,则与本地计算机上的默认实例建立连接。

关键字 Address 替代 Server 关键字。

通过指定以下选项之一,可连接到本地服务器的默认实例:

Server=;
Server=.;
Server=(local);
Server=(local);
Server=(localhost);
Server=(localdb)\<instancename>;

有关 LocalDB 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对 LocalDB 的支持

若要指定 SQL Server 的命名实例,请追加 \<InstanceName>

如果不指定服务器,则与本地计算机上的默认实例建立连接。

如果指定了 IP 地址,请确保在 SQL Server 配置管理器中启用了 TCP/IP 或 named pipes 协议。

关键字的完整语法 Server 如下所示:

[protocol:]Server[,port]

protocol 可以是 tcp (TCP/IP)、 lpc (共享内存)或 np (命名管道)。

以下示例指定了命名管道:

np:\\.\pipe\MSSQL$MYINST01\sql\query

上述行指定命名管道协议 (np)、本地计算机上的一个命名管道 (\\.\pipe)、SQL Server 实例的名称 (MSSQL$MYINST01),以及命名管道的默认名称 (sql/query)。

如果既未指定 协议Network 也没有指定关键字,则 OLE DB Driver for SQL Server 将使用 SQL Server 配置管理器 中指定的协议顺序。

port是用于连接到指定服务器的端口。 默认情况下,SQL Server 使用端口 1433

使用 OLE DB Driver for SQL Server 时,在连接字符串中传递 Server 的值的开头将忽略空格。
ServerCertificate SSPROP_INIT_SERVER_CERTIFICATE 指定要与 SQL Server TLS/SSL 证书匹配的证书文件的路径。 此选项只有在启用 Strict 加密后才能使用。 接受的证书格式为 PEM、DER 和 CER。 如果指定,则通过查看提供的证书是否完全匹配来检查 SQL Server 证书。
ServerSPN SSPROP_INIT_SERVERSPN 服务器的 SPN。 默认值为空字符串。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。
Timeout DBPROP_INIT_TIMEOUT 等待数据源初始化完成的时间(秒)。
TransparentNetworkIPResolution SSPROP_INIT_TNIR 如果第一个解析的主机名 IP 未响应,且存在多个与主机名关联的 IP,则会影响连接序列。 TNIR 与 MultiSubnetFailover 交互,以提供其他连接序列。 可能值为 YesNo。 默认值为 Yes。 有关详细信息,请参阅使用透明网络 IP 解析
Trusted_Connection DBPROP_AUTH_INTEGRATED 如果是 yes,此选项指示 OLE DB Driver for SQL Server 使用 Windows 身份验证进行登录验证。 否则,OLE DB Driver for SQL Server 将使用 SQL Server 用户名和密码进行登录验证,并且必须指定 UID 和 PWD 关键字。
TrustServerCertificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受字符串 yesno 作为值。 默认值为 no,它意味着将验证服务器证书。
UID DBPROP_AUTH_USERID SQL Server 登录名。
UseFMTONLY SSPROP_INIT_USEFMTONLY 控制在连接到 SQL Server 2012 (11.x) 及更高版本时的元数据检索方式。 可能值为 yesno。 默认值为 no

默认情况下,OLE DB Driver for SQL Server 使用 sp_describe_first_result_setsp_describe_undeclared_parameters 存储过程来检索元数据。 这些存储过程有一些限制(例如,对临时表进行操作时存储过程将失败)。 将 UseFMTONLY 设置为 yes 会指示驱动程序改为使用 SET FMTONLY 来检索元数据。
UseProcForPrepare SSPROP_INIT_USEPROCFORPREP 不推荐使用该关键字,并且 OLE DB Driver for SQL Server 将忽略其设置。
WSID SSPROP_INIT_WSID 工作站标识符。

1 为了提高安全性,在使用身份验证或访问令牌初始化属性或其相应的连接字符串关键字时,会修改加密和证书验证行为。 有关详细信息,请参阅加密和证书验证

使用 IDataInitialize::GetDataSource

OLE DB 应用程序使用的 IDataInitialize::GetDataSource 连接字符串具有以下语法:

  • connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
  • empty-string ::=
  • attribute ::= attribute-keyword=[quote]attribute-value[quote]
  • attribute-value ::= character-string
  • attribute-keyword ::= identifier
  • quote ::= " | '

属性使用必须符合其作用域中允许的语法。 例如,WSID 使用大括号({})作为引号,而Application Name 则使用单引号(')或双引号(")。 只有字符串属性可以加引号。 尝试给整数或枚举属性加引号将导致 Connection String doesn't conform to OLE DB specification 错误。

属性值可以选择放在单引号或双引号内,并且最好这样做。 此做法可以避免当值包含非字母数字字符时出现问题。 所使用的引号字符也可以出现在值中,只要用双引号将其括起来。

连接字符串关键字的等号 (=) 之后的空白字符将被解释为文本,即使该值在引号内也是如此。

如果某一连接字符串具有下表所列的多个属性,将使用最后一个属性的值。

下表描述了可能与IDataInitialize::GetDataSource一起使用的关键字:

关键字 初始化属性 说明
Access Token 1 SSPROP_AUTH_ACCESS_TOKEN 用于对 Microsoft Entra ID 进行身份验证的访问令牌。

注意:指定此关键字以及UID连接字符串PWDTrusted_ConnectionAuthentication关键字或其相应的属性/关键字是错误的。
Application Name SSPROP_INIT_APPNAME 用于标识应用程序的字符串。
Application Intent SSPROP_INIT_APPLICATIONINTENT 连接到服务器时声明应用程序工作负荷类型。 可能值为 ReadOnlyReadWrite

默认为 ReadWrite。 有关对 Always On 可用性组 的 OLE DB Driver for SQL Server 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持
Authentication 1 SSPROP_AUTH_MODE 指定使用的 SQL 或 Microsoft Entra 身份验证。 有效值是:
  • (not set):身份验证模式由其他关键字确定。
  • ActiveDirectoryIntegrated:将身份验证与 Microsoft Entra ID 集成。

  • 注意:关键字 ActiveDirectoryIntegrated 还可用于对 SQL Server 进行 Windows 身份验证。 它将替换 Integrated Security(或 Trusted_Connection)身份验证关键字。 使用 Integrated Security (或Trusted_Connection) 关键字或其相应属性的应用程序应将关键字的值(或其相应属性)设置为AuthenticationActiveDirectoryIntegrated启用新的加密和证书验证行为。

  • ActiveDirectoryInteractive:使用 Microsoft Entra 标识进行交互式身份验证。 此方法也支持 Microsoft Entra 多重身份验证。
  • ActiveDirectoryMSI托管身份 身份验证。 对于用户分配的标识,用户 ID 应设置为用户标识的对象 ID。
  • ActiveDirectoryServicePrincipal:使用 Microsoft Entra 服务主体进行身份验证。 用户 ID 应设置为应用程序(客户端)ID。 密码应设置为应用程序(客户端)机密。
  • ActiveDirectoryPassword[已弃用] 已弃用Microsoft Entra 标识的用户 ID 和密码身份验证。 迁移到用户主体的多重身份验证(ActiveDirectoryInteractive)。 有关详细信息,请参阅 Microsoft Entra 用户名和密码身份验证
  • SqlPassword:使用用户 ID 和密码进行身份验证。

  • 注意:使用 SQL Server 身份验证的应用程序应设置 Authentication 关键字的值(或其相应的属性),以 SqlPassword 启用 新的加密和证书验证行为
Auto Translate SSPROP_INIT_AUTOTRANSLATE 配置 OEM/ANSI 字符转换。 已识别的值为 truefalse
Connect Timeout DBPROP_INIT_TIMEOUT 等待数据源初始化完成的时间(秒)。
Connect Retry Count SSPROP_INIT_CONNECT_RETRY_COUNT 控制在连接丢失的情况下的重新连接尝试次数。 有效值的范围为 0255。 默认值为 1。 值 0 将导致不尝试重新连接。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力
Connect Retry Interval SSPROP_INIT_CONNECT_RETRY_INTERVAL 指定在连接丢失的情况下,每次连接重试尝试之间的秒数。 有效值的范围为 160。 默认值为 10。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力
Current Language SSPROPT_INIT_CURRENTLANGUAGE SQL Server 语言名称。
Data Source DBPROP_INIT_DATASOURCE 组织中的 SQL Server 实例的名称。

如果不指定,则与本地计算机上的默认实例建立连接。

有关有效地址语法的详细信息,请参阅本文中的关键字说明 Server
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定要使用的数据类型的处理模式。 对于提供程序数据类型,可识别的值为 0;对于 SQL Server 2000 (8.x) 数据类型,可识别的值为 80
Failover Partner SSPROP_INIT_FAILOVERPARTNER 用于数据库镜像的故障转移服务器的名称。
Failover Partner SPN SSPROP_INIT_FAILOVERPARTNERSPN 故障转移伙伴的 SPN。 默认值为空字符串。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。
Host Name In Certificate SSPROP_INIT_HOST_NAME_CERTIFICATE 验证 SQL Server TLS/SSL 证书时要使用的主机名。 Host Name In Certificate如果未设置关键字,驱动程序将使用Data Source连接 URL 上的关键字值作为主机名来验证 SQL Server TLS/SSL 证书。
注意:如果服务器证书受信任,则忽略此属性。 如果 Use Encryption for Data 设置为 Strict,将始终验证证书。
Initial Catalog DBPROP_INIT_CATALOG 数据库名称。
Initial File Name SSPROP_INIT_FILENAME 可附加数据库的主文件的名称(包括完整路径名)。 若要使用 AttachDBFileName,还必须使用提供程序字符串 DATABASE 关键字指定数据库名称。 如果该数据库以前已经附加,则 SQL Server 不重新附加它;而是使用已附加的数据库作为连接的默认数据库。
Integrated Security DBPROP_AUTH_INTEGRATED 对于 Windows 身份验证,可接受的值为 SSPI
MARS Connection SSPROP_INIT_MARSCONNECTION 启用或禁用连接上的多个活动结果集 (MARS)。 已识别的值为 truefalse。 默认为 false
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER 在连接到 SQL Server 可用性组或 SQL Server 故障转移群集实例的可用性组侦听程序时,应始终指定 MultiSubnetFailover=TrueMultiSubnetFailover=True 配置 SQL Server 的 OLE DB 驱动程序,以提供更快速的检测和连接到当前活动服务器。 可能值为 TrueFalse。 默认为 False。 例如:

MultiSubnetFailover=True

有关对 Always On 可用性组 的 OLE DB Driver for SQL Server 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持
Network Address SSPROP_INIT_NETWORKADDRESS 组织中的 SQL Server 实例的网络地址。

有关有效地址语法的详细信息,请参阅本文中的关键字说明 Address
Network Library SSPROP_INIT_NETWORKLIBRARY 用于与组织中的 SQL Server 实例建立连接的网络库。
Packet Size SSPROP_INIT_PACKETSIZE 表格格式数据流 (TDS) 包大小。 默认值为 0 (实际值将由服务器确定)。
Password DBPROP_AUTH_PASSWORD SQL Server 登录密码。
Persist Security Info DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受字符串 truefalse 作为值。 如果是 false,则不允许数据源对象保留敏感的身份验证信息
Provider 对于 OLE DB Driver for SQL Server,值为 MSOLEDBSQL19MSOLEDBSQL
Server Certificate SSPROP_INIT_SERVER_CERTIFICATE 指定要与 SQL Server TLS/SSL 证书匹配的证书文件的路径。 此选项只有在启用 Strict 加密后才能使用。 接受的证书格式为 PEM、DER 和 CER。 如果指定,则通过查看提供的证书是否完全匹配来检查 SQL Server 证书。
Server SPN SSPROP_INIT_SERVERSPN 服务器的 SPN。 默认值为空字符串。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。
TransparentNetworkIPResolution SSPROP_INIT_TNIR 如果第一个解析的主机名 IP 未响应,且存在多个与主机名关联的 IP,则会影响连接序列。 TNIR 与 MultiSubnetFailover 交互,以提供其他连接序列。 可能值为 TrueFalse。 默认值为 True。 有关详细信息,请参阅使用透明网络 IP 解析
Trust Server Certificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受字符串 truefalse 作为值。 默认值为 false,它意味着将验证服务器证书。
Use Encryption for Data 1 SSPROP_INIT_ENCRYPT 指定在通过网络发送数据之前是否应当将其加密。 可能值为 OptionalMandatoryStrict。 默认值为 Mandatory。 对于版本 18.x.x,请参阅 MSOLEDBSQL 主版本差异
Use FMTONLY SSPROP_INIT_USEFMTONLY 控制在连接到 SQL Server 2012 (11.x) 及更高版本时的元数据检索方式。 可能值为 truefalse。 默认值为 false

默认情况下,OLE DB Driver for SQL Server 使用 sp_describe_first_result_setsp_describe_undeclared_parameters 存储过程来检索元数据。 这些存储过程有一些限制(例如,对临时表进行操作时存储过程将失败)。 将 Use FMTONLY 设置为 true 会指示驱动程序改为使用 SET FMTONLY 来检索元数据。
User ID DBPROP_AUTH_USERID SQL Server 登录名。
Workstation ID SSPROP_INIT_WSID 工作站标识符。

1 为了提高安全性,在使用身份验证/访问令牌初始化属性或其相应的连接字符串关键字时,会修改加密和证书验证行为。 有关详细信息,请参阅加密和证书验证

注意

在连接字符串中,Old Password 属性设置 SSPROP_AUTH_OLD_PASSWORD,即当前(可能已过期)的密码,该密码无法通过提供程序字符串属性获取。

ActiveX 数据对象 (ADO) 连接字符串关键字

ADO 应用程序设置ConnectionString对象的ADODBConnection属性,或者为Open对象的方法ADODBConnection提供连接字符串作为参数。

ADO 应用程序还可以使用 OLE DB IDBInitialize::Initialize 方法使用的关键字,但仅适用于没有默认值的属性。 如果应用程序同时使用 ADO 关键字和 IDBInitialize::Initialize 初始化字符串中的关键字,将使用 ADO 关键字设置。 建议应用程序仅使用 ADO 连接字符串关键字。

ADO 使用的连接字符串有以下语法:

  • connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
  • empty-string ::=
  • attribute ::= attribute-keyword=["]attribute-value["]
  • attribute-value ::= character-string
  • attribute-keyword ::= identifier

属性值可以选择放在双引号中,并且最好这样做。 此做法可以避免当值包含非字母数字字符时出现问题。 属性值不能包含双引号。

下表描述了可能与 ADO 连接字符串一起使用的关键字:

关键字 初始化属性 说明
Access Token 1 SSPROP_AUTH_ACCESS_TOKEN 用于对 Microsoft Entra ID 进行身份验证的访问令牌。

注意:指定此关键字以及UID连接字符串PWDTrusted_ConnectionAuthentication关键字或其相应的属性/关键字是错误的。
Application Intent SSPROP_INIT_APPLICATIONINTENT 连接到服务器时声明应用程序工作负荷类型。 可能值为 ReadOnlyReadWrite

默认为 ReadWrite。 有关对 Always On 可用性组 的 OLE DB Driver for SQL Server 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持
Application Name SSPROP_INIT_APPNAME 用于标识应用程序的字符串。
Authentication 1 SSPROP_AUTH_MODE 指定使用的 SQL 或 Microsoft Entra 身份验证。 有效值是:
  • (not set):身份验证模式由其他关键字确定。
  • ActiveDirectoryIntegrated:将身份验证与 Microsoft Entra ID 集成。

  • 注意:关键字 ActiveDirectoryIntegrated 还可用于对 SQL Server 进行 Windows 身份验证。 它将替换 Integrated Security(或 Trusted_Connection)身份验证关键字。 使用 Integrated Security (或Trusted_Connection) 关键字或其相应属性的应用程序应将关键字的值(或其相应属性)设置为AuthenticationActiveDirectoryIntegrated启用新的加密和证书验证行为。

  • ActiveDirectoryInteractive:使用 Microsoft Entra 标识进行交互式身份验证。 此方法也支持 Microsoft Entra 多重身份验证。
  • ActiveDirectoryMSI托管身份 身份验证。 对于用户分配的标识,用户 ID 应设置为用户标识的对象 ID。
  • ActiveDirectoryServicePrincipal:使用 Microsoft Entra 服务主体进行身份验证。 用户 ID 应设置为应用程序(客户端)ID。 密码应设置为应用程序(客户端)机密。
  • ActiveDirectoryPassword[已弃用] 已弃用Microsoft Entra 标识的用户 ID 和密码身份验证。 迁移到用户主体的多重身份验证(ActiveDirectoryInteractive)。 有关详细信息,请参阅 Microsoft Entra 用户名和密码身份验证
  • SqlPassword:使用用户 ID 和密码进行身份验证。

  • 注意:使用 SQL Server 身份验证的应用程序应设置 Authentication 关键字的值(或其相应的属性),以 SqlPassword 启用 新的加密和证书验证行为
Auto Translate SSPROP_INIT_AUTOTRANSLATE 配置 OEM/ANSI 字符转换。 已识别的值为 truefalse
Connect Timeout DBPROP_INIT_TIMEOUT 等待数据源初始化完成的时间(秒)。
Connect Retry Count SSPROP_INIT_CONNECT_RETRY_COUNT 控制在连接丢失的情况下的重新连接尝试次数。 有效值的范围为 0255。 默认值为 1。 值 0 将导致不尝试重新连接。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力
Connect Retry Interval SSPROP_INIT_CONNECT_RETRY_INTERVAL 指定在连接丢失的情况下,每次连接重试尝试之间的秒数。 有效值的范围为 160。 默认值为 10。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力
Current Language SSPROPT_INIT_CURRENTLANGUAGE SQL Server 语言名称。
Data Source DBPROP_INIT_DATASOURCE 组织中的 SQL Server 实例的名称。

如果不指定,则与本地计算机上的默认实例建立连接。

有关有效地址语法的详细信息,请参阅本文中的关键字说明 Server
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定将使用的数据类型的处理模式。 对于提供程序数据类型,可识别的值为 0;对于 SQL Server 2000 (8.x) 数据类型,可识别的值为 80
Failover Partner SSPROP_INIT_FAILOVERPARTNER 用于数据库镜像的故障转移服务器的名称。
Failover Partner SPN SSPROP_INIT_FAILOVERPARTNERSPN 故障转移伙伴的 SPN。 默认值为空字符串。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。
Host Name In Certificate SSPROP_INIT_HOST_NAME_CERTIFICATE 验证 SQL Server TLS/SSL 证书时要使用的主机名。 Host Name In Certificate如果未设置关键字,驱动程序将使用Data Source连接 URL 上的关键字值作为主机名来验证 SQL Server TLS/SSL 证书。
注意:如果服务器证书受信任,则忽略此属性。 如果 Use Encryption for Data 设置为 Strict,将始终验证证书。
Initial Catalog DBPROP_INIT_CATALOG 数据库名称。
Initial File Name SSPROP_INIT_FILENAME 可附加数据库的主文件的名称(包括完整路径名)。 若要使用 AttachDBFileName,还必须使用提供程序字符串 DATABASE 关键字指定数据库名称。 如果该数据库以前已经附加,则 SQL Server 不重新附加它;而是使用已附加的数据库作为连接的默认数据库。
Integrated Security DBPROP_AUTH_INTEGRATED 对于 Windows 身份验证,可接受的值为 SSPI
MARS Connection SSPROP_INIT_MARSCONNECTION 如果服务器是 SQL Server 2005 (9.x) 或更高版本,则启用或禁用连接上的多个活动结果集 (MARS)。 已识别的值为 truefalse。 默认为 false
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER 在连接到 SQL Server 可用性组或 SQL Server 故障转移群集实例的可用性组侦听程序时,应始终指定 MultiSubnetFailover=TrueMultiSubnetFailover=True 配置 SQL Server 的 OLE DB 驱动程序,以提供更快速的检测和连接到当前活动服务器。 可能值为 TrueFalse。 默认为 False。 例如:

MultiSubnetFailover=True

有关对 Always On 可用性组 的 OLE DB Driver for SQL Server 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持
Network Address SSPROP_INIT_NETWORKADDRESS 组织中的 SQL Server 实例的网络地址。

有关有效地址语法的详细信息,请参阅本文中的关键字说明 Address
Network Library SSPROP_INIT_NETWORKLIBRARY 用于与组织中的 SQL Server 实例建立连接的网络库。
Packet Size SSPROP_INIT_PACKETSIZE 表格格式数据流 (TDS) 包大小。 默认值为 0 (实际值将由服务器确定)。
Password DBPROP_AUTH_PASSWORD SQL Server 登录密码。
Persist Security Info DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受字符串 truefalse 作为值。 如果是 false,则不允许数据源对象保留敏感的身份验证信息。
Provider 对于 OLE DB Driver for SQL Server,值为 MSOLEDBSQL19MSOLEDBSQL
Server Certificate SSPROP_INIT_SERVER_CERTIFICATE 指定要与 SQL Server TLS/SSL 证书匹配的证书文件的路径。 此选项只有在启用 Strict 加密后才能使用。 接受的证书格式为 PEM、DER 和 CER。 如果指定,则通过查看提供的证书是否完全匹配来检查 SQL Server 证书。
Server SPN SSPROP_INIT_SERVERSPN 服务器的 SPN。 默认值为空字符串。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。
TransparentNetworkIPResolution SSPROP_INIT_TNIR 如果第一个解析的主机名 IP 未响应,且存在多个与主机名关联的 IP,则会影响连接序列。 TNIR 与 MultiSubnetFailover 交互,以提供其他连接序列。 可能值为 TrueFalse。 默认值为 True。 有关详细信息,请参阅使用透明网络 IP 解析
Trust Server Certificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受字符串 truefalse 作为值。 默认值为 false,它意味着将验证服务器证书。
Use Encryption for Data 1 SSPROP_INIT_ENCRYPT 指定在通过网络发送数据之前是否应当将其加密。 可能值为 OptionalMandatoryStrict。 默认值为 Mandatory。 对于版本 18.x.x,请参阅 MSOLEDBSQL 主版本差异
Use FMTONLY SSPROP_INIT_USEFMTONLY 控制在连接到 SQL Server 2012 (11.x) 及更高版本时的元数据检索方式。 可能值为 truefalse。 默认值为 false

默认情况下,OLE DB Driver for SQL Server 使用 sp_describe_first_result_setsp_describe_undeclared_parameters 存储过程来检索元数据。 这些存储过程有一些限制(例如,对临时表进行操作时存储过程将失败)。 将 Use FMTONLY 设置为 true 会指示驱动程序改为使用 SET FMTONLY 来检索元数据。
User ID DBPROP_AUTH_USERID SQL Server 登录名。
Workstation ID SSPROP_INIT_WSID 工作站标识符。

1 为了提高安全性,在使用身份验证/访问令牌初始化属性或其相应的连接字符串关键字时,会修改加密和证书验证行为。 有关详细信息,请参阅加密和证书验证

注意

在连接字符串中,“旧密码”属性设置为 SSPROP_AUTH_OLD_PASSWORD,这是当前(可能已过期)且无法通过提供程序字符串属性访问的密码。