适用于:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric中的SQL数据库
OLE DB Driver for SQL Server 将 OLE DB 初始化和授权属性解释如下:
| 属性 ID | 说明 |
|---|---|
DBPROP_AUTH_CACHE_AUTHINFO |
SQL Server 的 OLE DB 驱动不缓存认证信息。 SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_AUTH_ENCRYPT_PASSWORD |
SQL Server 的 OLE DB 驱动采用标准的 SQL Server 安全机制来隐藏密码。 SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_AUTH_INTEGRATED |
如果DBPROP_AUTH_INTEGRATED设置为NULL指针、空字符串或“SSPI”VT_BSTR值,SQL Server的OLE数据库驱动将使用Windows认证模式授权用户访问由DBPROP_INIT_DATASOURCEDBPROP_INIT_CATALOG和属性指定的SQL Server数据库。如果设置为 VT_EMPTY (默认),则使用 SQL Server 安全。 SQL Server的登录和密码在和DBPROP_AUTH_PASSWORD属性中DBPROP_AUTH_USERID指定。 |
DBPROP_AUTH_MASK_PASSWORD |
OLE DB Driver for SQL Server 使用标准的 SQL Server 安全机制来隐藏密码。 SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_AUTH_PASSWORD |
分配给 SQL Server 登录名的密码。 选用 SQL Server 身份验证来授权访问 SQL Server 数据库时,将使用该属性。 |
DBPROP_AUTH_PERSIST_ENCRYPTED |
SQL Server 的 OLE DB 驱动在持久化时不会加密认证信息。 SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO |
必要时,适用于 SQL Server 的 OLE DB 驱动程序将永久保存身份验证值,例如密码的图像。 不提供加密。 |
DBPROP_AUTH_USERID |
SQL Server 登录名。 选用 SQL Server 身份验证来授权访问 SQL Server 数据库时,将使用该属性。 |
DBPROP_INIT_ASYNCH |
OLE DB Driver for SQL Server 支持异步启动。 将该 DBPROPVAL_ASYNCH_INITIALIZE 位置入 DBPROP_INIT_ASYNCH 属性后 IDBInitialize::Initialize ,调用变成非阻塞调用。 有关详细信息,请参阅执行异步操作。 |
DBPROP_INIT_CATALOG |
要连接的现有 SQL Server 数据库的名称。 |
DBPROP_INIT_DATASOURCE |
运行SQL Server实例的服务器网络名称。 如果计算机上运行多个SQL Server实例,为了连接特定的SQL Server DBPROP_INIT_DATASOURCE 实例,值被指定为 \\<ServerName>\<InstanceName>。 逃脱序列 \\ 用于反斜线本身。 |
DBPROP_INIT_GENERALTIMEOUT |
表示请求(除数据源初始化和命令执行外)超时前的秒数。值为 0 表示无限超时。 通过网络连接或分布式或交易场景工作的提供者可以支持这一特性,在存在长期请求时建议入伍组件超时。 数据源初始化和命令执行的超时分别由 DBPROP_INIT_TIMEOUT 和 DBPROP_COMMANDTIMEOUT控制。DBPROP_INIT_GENERALTIMEOUT是只读的,如果尝试设置,会返回 的 DBPROPSTATUS_NOTSETTABLEdwstatus 错误。 |
DBPROP_INIT_HWND |
来自调用应用程序的 Windows 句柄。 如果允许提示用户输入初始化属性,则必须有有效的窗口句柄,才能显示初始化对话框。 |
DBPROP_INIT_IMPERSONATION_LEVEL |
SQL Server 的 OLE DB 驱动不支持模拟级别调整。 SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_INIT_LCID |
SQL Server 的 OLE DB 驱动会验证本地 ID,如果本地 ID 不被支持或客户端未安装,会返回错误。 |
DBPROP_INIT_LOCATION |
SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_INIT_MODE |
SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_INIT_PROMPT |
OLE DB Driver for SQL Server 支持数据源初始化的所有提示模式。 SQL Server 的 OLE DB 驱动作为 DBPROMPT_NOPROMPT 该属性的默认设置。 |
DBPROP_INIT_PROTECTION_LEVEL |
SQL Server 的 OLE DB 驱动不支持对 SQL Server 实例的连接设置保护级别。 SQL Server 的 OLE DB 驱动在尝试设置属性值时返回 DB_S_ERRORSOCCURRED 。 DBPROP结构中的 dwStatus 成员表示 DBPROPSTATUS_NOTSUPPORTED。 |
DBPROP_INIT_PROVIDERSTRING |
请参见本文后面的 SQL Server 字符串 OLE DB 驱动。 |
DBPROP_INIT_TIMEOUT |
如果无法在指定秒数内建立与 SQL Server 实例的连接,SQL Server 的 OLE DB 驱动在初始化时会返回错误。 |
在提供者专用属性集 DBPROPSET_SQLSERVERDBINIT中,SQL Server 的 OLE DB 驱动定义了这些额外的初始化属性。
| 属性 ID | 说明 |
|---|---|
SSPROP_AUTH_ACCESS_TOKEN
1 |
类型:VT_BSTR右/写:读/写 默认: VT_EMPTY描述:用于认证Microsoft Entra ID的访问令牌。 注意:指定此属性 UID以及 、 PWD、 Trusted_Connection、 或 Authentication 连接字符串关键词及其对应的属性/关键词是错误的。 |
SSPROP_AUTH_MODE
1 |
类型:VT_BSTR右/写:读/写 默认: VT_EMPTY说明:指定所使用的SQL或Microsoft Entra认证。 有效值是:
注意:关键字 ActiveDirectoryIntegrated 还可用于对 SQL Server 进行 Windows 身份验证。 它将替换 Integrated Security(或 Trusted_Connection)身份验证关键字。 使用 Integrated Security (或Trusted_Connection) 关键字或其相应属性的应用程序应将关键字的值(或其相应属性)设置为AuthenticationActiveDirectoryIntegrated启用新的加密和证书验证行为。注意:使用 SQL Server 认证的应用程序应设置关键词(或其对应属性)的值 Authentication ,以 SqlPassword 启用 新的加密和证书验证行为。 |
SSPROP_AUTH_OLD_PASSWORD |
类型:VT_BSTR写作 默认: VT_EMPTY说明:当前或过期的密码。 有关详细信息,请参阅以编程方式更改密码。 |
SSPROP_INIT_APPNAME |
类型:VT_BSTR右/写:读/写 描述:客户端应用程序名称。 |
SSPROP_INIT_AUTOTRANSLATE |
类型:VT_BOOL右/写:读/写 默认: VARIANT_TRUE说明:OEM/ANSI 字符转换。 VARIANT_TRUE:SQL Server 的 OLE DB 驱动通过 Unicode 转换,将客户端与服务器之间发送的 ANSI 字符串转换,以减少客户端和服务器端代码页之间扩展字符匹配的问题:发送到SQL Server实例的客户端 DBTYPE_STR数据字符、变量或文本变量、参数或列,通过客户端ANSI代码页(ACP)从字符转换为Unicode,然后再用服务器的ACP从Unicode转换为字符。SQL Server 字符、 varchar 或 文本 数据发送到客户端 DBTYPE_STR 变量,先通过服务器 ACP 从字符转换为 Unicode,然后再用客户端 ACP 从 Unicode 转换为字符。对于 OLE DB 驱动程序版本 18.6.4 和 19.1+,上述转换也适用于 SSVARIANT 结构的 CharVal 成员与 SQL Server sql_variant 变量、参数或列实例之间传输的数据。 这些转换由 OLE DB Driver for SQL Server 在客户端上执行。 这要求服务器上使用的ACP必须在客户端上可用。 这些设置对于为下面这些传输而发生的转换无效: Unicode DBTYPE_WSTR 客户端数据发送到 char、 varchar 或服务器上的 文本 。char、varchar 或 text server 数据发送到客户端的 Unicode DBTYPE_WSTR 变量。ANSI DBTYPE_STR 客户端数据发送到 Unicode nchar、 nvarchar 或服务器上的 ntext 数据。Unicode 字符、 varchar 或 文本 服务器数据发送到客户端的 ANSI DBTYPE_STR 变量。VARIANT_FALSESQL Server 的 OLE DB 驱动不执行字符转换。SQL Server 的 OLE DB 驱动不会将客户端发送到 char、varchar 或服务器上的文本变量、参数或列的 ANSI 字符 DBTYPE_STR数据进行转换。 服务器发送DBTYPE_STR的字符、varchar 或文本数据不进行客户端变量的转换。 同样,对于 OLE DB 驱动程序版本 18.6.4 和 19.1+,驱动程序不会转换 SSVARIANT 结构的 CharVal 成员与 SQL Server sql_variant 变量、参数或列实例之间传输的数据。如果客户端和 SQL Server 实例正在使用不同的 ACP,可能会错误地解释扩展字符。 |
SSPROP_INIT_CONNECT_RETRY_COUNT |
类型:VT_I4右/写:读/写 默认: 1描述:控制连接中断时的重连尝试次数。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力。 |
SSPROP_INIT_CONNECT_RETRY_INTERVAL |
类型:VT_I4右/写:读/写 默认: 10描述:在连接中断的情况下,规定每次连接重试之间的秒数。 有关详细信息,请参阅 OLE DB 驱动程序中的空闲连接复原能力。 |
SSPROP_INIT_CURRENTLANGUAGE |
类型:VT_BSTR右/写:读/写 描述:SQL Server 语言名称。 标识用于系统消息选择和格式化的语言。 必须在运行 SQL Server 实例的计算机上安装该语言,否则数据源初始化将失败。 |
SSPROP_INIT_DATATYPECOMPATIBILITY |
类型:VT_UI2右/写:读/写 默认: 0描述:支持SQL Server与ActiveX数据对象(ADO)应用之间的数据类型兼容性。 如果使用默认值, 0 数据类型处理默认为提供者使用的值。 如果使用了 值 80 ,数据类型处理仅使用 SQL Server 2000(8.x)数据类型。 有关详细信息,请参阅结合使用 ADO 和 OLE DB Driver for SQL Server。 |
SSPROP_INIT_DISCOVEREDSERVERSPN |
类型:VT_BSTR按/写:阅读 描述:用于查询连接的服务器 SPN。 (版本 18.6.3 或更高版本) |
SSPROP_INIT_ENCRYPT
1 |
类型:VT_BSTRR/W:读/写 默认: Mandatory描述:规定是否加密网络上的数据。 如果强制协议加密开启,加密总是会发生,无论 设置为 SSPROP_INIT_ENCRYPT何种。 如果关闭且 SSPROP_INIT_ENCRYPT 设置为 Mandatory 或 Strict,则加密发生。如果强制协议加密关闭且 SSPROP_INIT_ENCRYPT 设置为 Optional,则不会发生加密。 有效值为 Optional、Mandatory 和 Strict。 关于18.x.x版本,请参见 主要版本差异。 |
SSPROP_INIT_FAILOVERPARTNER |
类型:VT_BSTR右/写:读/写 描述:指定数据库镜像的故障切换合作伙伴名称。 这是一个初始化属性,只能在初始化前设置。 初始化后,它返回由主服务器返回的故障切换伙伴(如有)。 这使得智能应用能够缓存最近确定的备份服务器,但此类应用应考虑,只有在连接首次建立(或如果是池化时重置)信息才会更新,且对于长期连接来说可能会过时。 连接完成后,应用程序可以查询该属性以确定故障切换伙伴的身份。 如果主服务器没有故障切换伙伴,该属性返回空字符串。 有关详细信息,请参阅使用数据库镜像。 |
SSPROP_INIT_FAILOVERPARTNERSPN |
类型:VT_BSTR右/写:读/写 默认: VT_EMPTY说明:指定故障切换伙伴的SPN。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。 |
SSPROP_INIT_FILENAME |
类型:VT_BSTR右/写:读/写 描述:指定可附加数据库的主文件名。 附加此数据库并使其成为连接的默认数据库。 要使用 SSPROP_INIT_FILENAME,必须指定数据库名称作为初始化属性 DBPROP_INIT_CATALOG的值。 如果数据库名称不存在,则会查找 中 SSPROP_INIT_FILENAME 指定的主文件名,并将该数据库附加到中指定的 DBPROP_INIT_CATALOG名称。 如果数据库之前已经附加过,SQL Server不会重新连接。 |
SSPROP_INIT_HOST_NAME_CERTIFICATE |
类型:VT_BSTR右/写:读/写 默认: VT_EMPTY描述:用于验证SQL Server TLS/SSL证书的主机名称。 如果 SSPROP_INIT_HOST_NAME_CERTIFICATE 该属性未被设置,驱动程序会用该 DBPROP_INIT_DATASOURCE 属性值作为主机名来验证 SQL Server 的 TLS/SSL 证书。 |
SSPROP_INIT_MARSCONNECTION |
类型:VT_BOOL右/写:读/写 默认: VARIANT_FALSE描述:规定连接是否启用了多个活动结果集(MARS)。 必须在与数据库建立连接之前将该选项设置为 true。 有关详细信息,请参阅使用多重活动结果集 (MARS)。 |
SSPROP_INIT_MULTISUBNETFAILOVER |
类型:VT_BOOL右/写:读/写 默认: VARIANT_FALSE说明:MultiSubnetFailover 使 SQL Server 中所有 Always On 可用性组和 Failover 集群实例能够更快切换,并显著缩短单一和多子网 Always On 拓扑的故障切换时间。 在多子网故障切换期间,客户端尝试并行连接。 有关详细信息,请参阅 OLE DB Driver for SQL Server 对高可用性和灾难恢复的支持。 |
SSPROP_INIT_NETWORKADDRESS |
类型:VT_BSTR右/写:读/写 描述:运行SQL Server实例的服务器的网络地址,由该 DBPROP_INIT_DATASOURCE 属性指定。 |
SSPROP_INIT_NETWORKLIBRARY |
类型:VT_BSTR右/写:读/写 描述:用于与SQL Server实例通信的网络库(DLL)名称。 名称中不应包含路径或 .dll 文件扩展名。 可以使用 SQL Server 客户端配置实用工具来自定义其默认值。 注意:此特性仅支持 TCP 和命名管道。 如果该属性在使用时带有前缀,最后将得到导致错误的双前缀,因为该属性用于在内部生成前缀。 |
SSPROP_INIT_PACKETSIZE |
类型:VT_I4右/写:读/写 描述:表式数据流(TDS)数据包大小(字节单位)。 数据包大小的属性值必须是 0 512到32,767之间或之间。 默认值为 0,这意味着实际的数据包大小由服务器决定。 |
SSPROP_INIT_SERVER_CERTIFICATE |
类型:VT_BSTR右/写:读/写 默认: VT_EMPTY描述:指定证书文件的路径,以匹配 SQL Server 的 TLS/SSL 证书。 此选项只有在启用 Strict 加密后才能使用。 接受的证书格式为 PEM、DER 和 CER。 如果指定,则通过查看提供的证书是否完全匹配来检查 SQL Server 证书。 |
SSPROP_INIT_SERVERSPN |
类型:VT_BSTR右/写:读/写 默认: VT_EMPTY描述:指定服务器的SPN。 空字符串导致 OLE DB Driver for SQL Server 使用提供程序生成的默认 SPN。 |
SSPROP_INIT_TAGCOLUMNCOLLATION |
类型:VT_BOOL写作 默认: VARIANT_FALSE描述:在数据库更新时使用服务器端光标时使用。 该属性用从服务器而不是客户端上的代码页获得的排序规则信息来标记数据。 当前,该属性仅供分布式查询进程使用,因为它知道目标数据的排序规则,并能正确转换它。 |
SSPROP_INIT_TNIR |
类型:VT_BOOL右/写:读/写 默认: VARIANT_TRUE描述:当主机名关联多个IP时,当主机名的第一个解析IP未响应时,TNIR会影响连接顺序。 TNIR 与 MultiSubnetFailover 交互,以提供其他连接顺序。 有关详细信息,请参阅使用透明网络 IP 解析。 |
SSPROP_INIT_TRUST_SERVER_CERTIFICATE
1 |
类型:VT_BOOL右/写:读/写 默认: VARIANT_FALSE描述:用于启用或禁用服务器证书验证。 该属性是读写的,但在连接建立后尝试设置该属性会出错。 如果客户端配置为要求进行证书验证,则忽略该属性。 然而,应用程序可以结合 SSPROP_INIT_ENCRYPT 使用它来保证其与服务器的连接是加密的,即使客户端配置为不需加密且客户端未配置证书。客户端应用程序可以在打开连接后查询此属性,以确定使用的实际加密和验证设置。 注意:使用加密而不进行证书验证,可以部分防止数据包嗅探,但不能防止中间人攻击。 它允许加密登录和发送到服务器的数据,而无需验证服务器证书。 有关详细信息,请参阅 OLE DB 中的加密和证书验证。 |
SSPROP_INIT_USEPROCFORPREP |
类型:VT_I4右/写:读/写 默认: SSPROPVAL_USEPROCFORPREP_ON描述:SQL Server 存储过程的用途。 定义了使用 SQL Server 临时存储过程以支持该 ICommandPrepare 接口。 仅当连接到 SQL Server 6.5 时,该属性才有意义。 对于更高版本,将忽略该属性。SSPROPVAL_USEPROCFORPREP_OFF:当命令被准备时,不会创建临时存储过程。SSPROPVAL_USEPROCFORPREP_ON:当命令被准备时,会创建一个临时存储过程。 释放会话时,删除临时存储过程。SSPROPVAL_USEPROCFORPREP_ON_DROP:当命令被准备时,会创建一个临时存储过程。 当命令未准备好 ICommandPrepare::Unprepare,当为命令 ICommandText::SetCommandText对象指定新命令时,或释放所有对该命令的应用引用,该过程将被丢弃。 |
SSPROP_INIT_WSID |
类型:VT_BSTR右/写:读/写 描述:一条标识工作站的字符串。 |
1 为了提高安全性,在使用身份验证/访问令牌初始化属性或其相应的连接字符串关键字时,会修改加密和证书验证行为。 有关详细信息,请参阅加密和证书验证。
在提供者特定属性集 DBPROPSET_SQLSERVERDATASOURCEINFO中,SQL Server 的 OLE DB 驱动定义了额外的属性。 更多信息请参见 数据源信息属性。
SQL Server 字符串的 OLE DB 驱动
OLE DB Driver for SQL Server 可以识别提供程序字符串属性值中类似 ODBC 的语法。 当与 OLE DB 数据源建立连接时,提供者字符串属性作为 OLE DB 初始化属性 DBPROP_INIT_PROVIDERSTRING 的值提供。 该属性指定在实现与 OLE DB 数据源的连接时所需的特定于 OLE DB 访问接口的连接数据。 在字符串中,各元素是使用分号分隔的。 字符串中的最后一个元素必须以分号结束。 每个元素均由一个关键字、一个等号字符和在初始化时传递的值组成。 例如:
Server=MyServer;UID=MyUserName;
使用 OLE DB Driver for SQL Server,使用者永远都不需要使用提供程序字符串属性。 通过使用 OLE DB 或适用于 SQL Server 的 OLE DB 驱动程序特定的初始化属性,使用者可设置在提供程序字符串中反映的所有初始化属性。
关于 OLE DB 驱动中可用的关键词列表,请参见“ 使用连接字符串关键字配合 OLE DB 驱动 for SQL Server”。