适用于:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric中的SQL数据库
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 的应用程序时,最好消除连接字符串多义性上的任何依赖项。
以下各节描述了可以在使用 OLE DB Driver for SQL Server 作为数据提供程序时用于 OLE DB Driver for SQL Server 和 ActiveX 数据对象 (ADO) 的关键字。
OLE DB Driver 连接字符串关键字
OLE DB 应用程序可以用两种方式初始化数据源对象:
IDBInitialize::InitializeIDataInitialize::GetDataSource
在第一种情况下,可以通过使用提供程序字符串,在DBPROPSET_DBINIT属性集中设置DBPROP_INIT_PROVIDERSTRING属性来初始化连接属性。 第二种情况下,可以将初始化字符串传递给 IDataInitialize::GetDataSource 方法来初始化连接属性。 两种方法都初始化相同的 OLE DB 连接属性,但使用不同的关键字集合。 使用的 IDataInitialize::GetDataSource 关键字集至少是初始化属性组中属性的说明。
将对应的 OLE DB 属性设置为某个默认值或显式设置为某个值的任何提供程序字符串设置,OLE DB 属性值将覆盖提供程序字符串中的设置。
提供程序字符串中的布尔属性通过 DBPROP_INIT_PROVIDERSTRING 值进行设置,并使用 yes 和 no 值。 初始化字符串中设置的布尔属性通过使用值 true 和 false 来进行设置。
使用 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=server2, Data Source 则会设置为属性,但 Server 会进入提供程序字符串。
如果指定访问接口特定的属性相同的多个实例,则使用第一个属性的第一个值。
使用 IDBInitialize::Initialize
使用 DBPROP_INIT_PROVIDERSTRING 和 IDBInitialize::Initialize 的 OLE DB 应用程序所用连接字符串具有以下语法:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-stringempty-string ::=attribute ::= attribute-keyword=[{]attribute-value[}]attribute-value ::= character-stringattribute-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 Configuration Manager 中指定的协议顺序。“port”是指定服务器上所要连接到的端口 。 默认情况下,SQL Server 使用端口 1433。 |
APP |
SSPROP_INIT_APPNAME |
用于标识应用程序的字符串。 |
ApplicationIntent |
SSPROP_INIT_APPLICATIONINTENT |
连接到服务器时声明应用程序工作负荷类型。 可能值为 ReadOnly 和 ReadWrite。默认为 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 身份验证。 有效值是:
注意:关键字 ActiveDirectoryIntegrated 还可用于对 SQL Server 进行 Windows 身份验证。 它将替换 Integrated Security(或 Trusted_Connection)身份验证关键字。 使用 Integrated Security (或Trusted_Connection) 关键字或其相应属性的应用程序应将关键字的值(或其相应属性)设置为AuthenticationActiveDirectoryIntegrated启用新的加密和证书验证行为。注意:使用 SQL Server 身份验证的应用程序应设置 Authentication 关键字的值(或其相应的属性),以 SqlPassword 启用 新的加密和证书验证行为。 |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
AutoTranslate的同义词。 |
AutoTranslate |
SSPROP_INIT_AUTOTRANSLATE |
配置 OEM/ANSI 字符转换。 已识别的值为 yes 和 no。 |
ConnectRetryCount |
SSPROP_INIT_CONNECT_RETRY_COUNT |
控制在连接丢失的情况下的重新连接尝试次数。 有效值的范围为 0 到 255。 默认值为 1。 值 0 将导致不尝试重新连接。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力。 |
ConnectRetryInterval |
SSPROP_INIT_CONNECT_RETRY_INTERVAL |
指定在连接丢失的情况下,每次连接重试尝试之间的秒数。 有效值的范围为 1 到 60。 默认值为 10。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力。 |
Database |
DBPROP_INIT_CATALOG |
数据库名称。 |
DataTypeCompatibility |
SSPROP_INIT_DATATYPECOMPATIBILITY |
指定要使用的数据类型的处理模式。 可识别的值对提供程序数据类型为 0,对 SQL Server 2000 (8.x) 数据类型为 80。 |
Encrypt
1 |
SSPROP_INIT_ENCRYPT |
指定在通过网络发送数据之前是否应当将其加密。 可能值为 Optional、Mandatory 和 Strict。 默认值为 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)。 可能值为 yes 和 no。 默认值为 no。 |
MultiSubnetFailover |
SSPROP_INIT_MULTISUBNETFAILOVER |
在连接到 SQL Server 可用性组或 SQL Server 故障转移群集实例的可用性组侦听程序时,应始终指定 MultiSubnetFailover=Yes。
MultiSubnetFailover=Yes 配置 SQL Server 的 OLE DB 驱动程序,以提供更快速的检测和连接到当前活动服务器。 可能值为 Yes 和 No。 默认为 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 |
接受字符串 yes 和 no 作为值。 如果使用的是 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 支持的详细信息,请参阅 LocalDB 的 OLE DB Driver for SQL Server 支持。 若要指定 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 Configuration Manager 中指定的协议顺序。“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 交互,以提供其他连接序列。 可能值为 Yes 和 No。 默认值为 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 |
接受字符串 yes 和 no 作为值。 默认值为 no,它意味着将验证服务器证书。 |
UID |
DBPROP_AUTH_USERID |
SQL Server 登录名。 |
UseFMTONLY |
SSPROP_INIT_USEFMTONLY |
控制在连接到 SQL Server 2012 (11.x) 及更高版本时的元数据检索方式。 可能值为 yes 和 no。 默认值为 no。默认情况下,OLE DB Driver for SQL Server 使用 sp_describe_first_result_set 和 sp_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-stringempty-string ::=attribute ::= attribute-keyword=[quote]attribute-value[quote]attribute-value ::= character-stringattribute-keyword ::= identifierquote ::= " | '
属性使用必须符合其作用域中允许的语法。 例如,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 |
连接到服务器时声明应用程序工作负荷类型。 可能值为 ReadOnly 和 ReadWrite。默认为 ReadWrite。 有关对 Always On 可用性组 的 OLE DB Driver for SQL Server 支持的详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持。 |
Authentication
1 |
SSPROP_AUTH_MODE |
指定使用的 SQL 或 Microsoft Entra 身份验证。 有效值是:
注意:关键字 ActiveDirectoryIntegrated 还可用于对 SQL Server 进行 Windows 身份验证。 它将替换 Integrated Security(或 Trusted_Connection)身份验证关键字。 使用 Integrated Security (或Trusted_Connection) 关键字或其相应属性的应用程序应将关键字的值(或其相应属性)设置为AuthenticationActiveDirectoryIntegrated启用新的加密和证书验证行为。注意:使用 SQL Server 认证的应用程序应设置关键词(或其对应属性)的值 Authentication ,以 SqlPassword 启用 新的加密和证书验证行为。 |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
配置 OEM/ANSI 字符转换。 已识别的值为 true 和 false。 |
Connect Timeout |
DBPROP_INIT_TIMEOUT |
等待数据源初始化完成的时间(秒)。 |
Connect Retry Count |
SSPROP_INIT_CONNECT_RETRY_COUNT |
控制在连接丢失的情况下的重新连接尝试次数。 有效值的范围为 0 到 255。 默认值为 1。 值 0 将导致不尝试重新连接。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力。 |
Connect Retry Interval |
SSPROP_INIT_CONNECT_RETRY_INTERVAL |
指定在连接丢失的情况下,每次连接重试尝试之间的秒数。 有效值的范围为 1 到 60。 默认值为 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)。 已识别的值为 true 和 false。 默认为 false。 |
MultiSubnetFailover |
SSPROP_INIT_MULTISUBNETFAILOVER |
在连接到 SQL Server 可用性组或 SQL Server 故障转移群集实例的可用性组侦听程序时,应始终指定 MultiSubnetFailover=True。
MultiSubnetFailover=True 配置 SQL Server 的 OLE DB 驱动程序,以提供更快速的检测和连接到当前活动服务器。 可能值为 True 和 False。 默认为 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 |
接受字符串 true 和 false 作为值。 如果是 false,则不允许数据源对象保留敏感的身份验证信息 |
Provider |
对于 OLE DB Driver for SQL Server,值为 MSOLEDBSQL19 或 MSOLEDBSQL。 |
|
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 交互,以提供其他连接序列。 可能值为 True 和 False。 默认值为 True。 有关详细信息,请参阅使用透明网络 IP 解析。 |
Trust Server Certificate
1 |
SSPROP_INIT_TRUST_SERVER_CERTIFICATE |
接受字符串 true 和 false 作为值。 默认值为 false,它意味着将验证服务器证书。 |
Use Encryption for Data
1 |
SSPROP_INIT_ENCRYPT |
指定在通过网络发送数据之前是否应当将其加密。 可能值为 Optional、Mandatory 和 Strict。 默认值为 Mandatory。 对于版本 18.x.x,请参阅 MSOLEDBSQL 主版本差异。 |
Use FMTONLY |
SSPROP_INIT_USEFMTONLY |
控制在连接到 SQL Server 2012 (11.x) 及更高版本时的元数据检索方式。 可能值为 true 和 false。 默认值为 false。默认情况下,OLE DB Driver for SQL Server 使用 sp_describe_first_result_set 和 sp_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 应用程序设置ADODBConnection对象的ConnectionString属性,或者为ADODBConnection对象的方法Open提供连接字符串作为参数。
ADO 应用程序还可以使用 OLE DB IDBInitialize::Initialize 方法使用的关键字,但仅适用于没有默认值的属性。 如果应用程序同时使用 ADO 关键字和 IDBInitialize::Initialize 初始化字符串中的关键字,将使用 ADO 关键字设置。 建议应用程序仅使用 ADO 连接字符串关键字。
ADO 使用的连接字符串有以下语法:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-stringempty-string ::=attribute ::= attribute-keyword=["]attribute-value["]attribute-value ::= character-stringattribute-keyword ::= identifier
属性值可以选择放在双引号中,并且最好这样做。 此做法可以避免当值包含非字母数字字符时出现问题。 属性值不能包含双引号。
下表描述了可能与 ADO 连接字符串一起使用的关键字:
| 关键字 | 初始化属性 | 说明 |
|---|---|---|
Access Token
1 |
SSPROP_AUTH_ACCESS_TOKEN |
用于对 Microsoft Entra ID 进行身份验证的访问令牌。 注意:指定此关键字以及 UID连接字符串PWDTrusted_ConnectionAuthentication关键字或其相应的属性/关键字是错误的。 |
Application Intent |
SSPROP_INIT_APPLICATIONINTENT |
连接到服务器时声明应用程序工作负荷类型。 可能值为 ReadOnly 和 ReadWrite。默认为 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 身份验证。 有效值是:
注意:关键字 ActiveDirectoryIntegrated 还可用于对 SQL Server 进行 Windows 身份验证。 它将替换 Integrated Security(或 Trusted_Connection)身份验证关键字。 使用 Integrated Security (或Trusted_Connection) 关键字或其相应属性的应用程序应将关键字的值(或其相应属性)设置为AuthenticationActiveDirectoryIntegrated启用新的加密和证书验证行为。注意:使用 SQL Server 认证的应用程序应设置关键词(或其对应属性)的值 Authentication ,以 SqlPassword 启用 新的加密和证书验证行为。 |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
配置 OEM/ANSI 字符转换。 已识别的值为 true 和 false。 |
Connect Timeout |
DBPROP_INIT_TIMEOUT |
等待数据源初始化完成的时间(秒)。 |
Connect Retry Count |
SSPROP_INIT_CONNECT_RETRY_COUNT |
控制在连接丢失的情况下的重新连接尝试次数。 有效值的范围为 0 到 255。 默认值为 1。 值 0 将导致不尝试重新连接。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力。 |
Connect Retry Interval |
SSPROP_INIT_CONNECT_RETRY_INTERVAL |
指定在连接丢失的情况下,每次连接重试尝试之间的秒数。 有效值的范围为 1 到 60。 默认值为 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)。 已识别的值为 true 和 false。 默认为 false。 |
MultiSubnetFailover |
SSPROP_INIT_MULTISUBNETFAILOVER |
在连接到 SQL Server 可用性组或 SQL Server 故障转移群集实例的可用性组侦听程序时,应始终指定 MultiSubnetFailover=True。
MultiSubnetFailover=True 配置 SQL Server 的 OLE DB 驱动程序,以提供更快速的检测和连接到当前活动服务器。 可能值为 True 和 False。 默认为 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 |
接受字符串 true 和 false 作为值。 如果是 false,则不允许数据源对象保留敏感的身份验证信息。 |
Provider |
对于 OLE DB Driver for SQL Server,值为 MSOLEDBSQL19 或 MSOLEDBSQL。 |
|
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 交互,以提供其他连接序列。 可能值为 True 和 False。 默认值为 True。 有关详细信息,请参阅使用透明网络 IP 解析。 |
Trust Server Certificate
1 |
SSPROP_INIT_TRUST_SERVER_CERTIFICATE |
接受字符串 true 和 false 作为值。 默认值为 false,它意味着将验证服务器证书。 |
Use Encryption for Data
1 |
SSPROP_INIT_ENCRYPT |
指定在通过网络发送数据之前是否应当将其加密。 可能值为 Optional、Mandatory 和 Strict。 默认值为 Mandatory。 对于版本 18.x.x,请参阅 MSOLEDBSQL 主版本差异。 |
Use FMTONLY |
SSPROP_INIT_USEFMTONLY |
控制在连接到 SQL Server 2012 (11.x) 及更高版本时的元数据检索方式。 可能值为 true 和 false。 默认值为 false。默认情况下,OLE DB Driver for SQL Server 使用 sp_describe_first_result_set 和 sp_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,这是当前(可能已过期)且无法通过提供程序字符串属性访问的密码。