初始化和授权属性

SQL Server Native Client OLE DB 访问接口解释 OLE DB 初始化和授权属性,如下所示:

属性 ID DESCRIPTION
DBPROP_AUTH_CACHE_AUTHINFO SQL Server Native Client OLE DB 访问接口不缓存身份验证信息。

SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_AUTH_ENCRYPT_PASSWORD SQL Server Native Client OLE DB 提供程序使用标准的 MicrosoftSQL Server 安全机制来隐藏密码。

SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_AUTH_INTEGRATED 如果DBPROP_AUTH_INTEGRATED设置为 NULL 指针、null 字符串或“SSPI”VT_BSTR值,则 SQL Server Native Client OLE DB 访问接口使用 Windows 身份验证模式授权用户访问由DBPROP_INIT_DATASOURCE和DBPROP_INIT_CATALOG属性指定的 SQL Server 数据库。

如果它设置为VT_EMPTY(默认值),则使用 SQL Server 安全性。 SQL Server 登录名和密码在DBPROP_AUTH_USERID和DBPROP_AUTH_PASSWORD属性中指定。
DBPROP_AUTH_MASK_PASSWORD SQL Server Native Client OLE DB 提供程序使用标准 SQL Server 安全机制来隐藏密码。

SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_AUTH_PASSWORD 分配给 SQL Server 登录名的密码。 选择 SQL Server 身份验证以授权访问 SQL Server 数据库时,将使用此属性。
DBPROP_AUTH_PERSIST_ENCRYPTED SQL Server Native Client OLE DB 访问接口在持久保存时不会加密身份验证信息。

SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 如果请求这样做,SQL Server Native Client OLE DB 访问接口将保留身份验证值,包括密码的图像。 未提供加密。
DBPROP_AUTH_USERID(数据库属性认证用户ID) SQL Server 登录。 选择 SQL Server 身份验证以授权访问 SQL Server 数据库时,将使用此属性。
DBPROP_INIT_ASYNCH SQL Server Native Client OLE DB 提供程序支持异步启动。

设置DBPROP_INIT_ASYNCH属性中的DBPROPVAL_ASYNCH_INITIALIZE位会导致 IDBInitialize::Initialize 成为非阻塞调用。 有关详细信息,请参阅 执行异步作
DBPROP_INIT_CATALOG 要连接到的现有 SQL Server 数据库的名称。
DBPROP_INIT_DATASOURCE 运行 MicrosoftSQL Server 实例的服务器的网络名称。 如果计算机上运行了多个 SQL Server 实例,若要连接到 SQL Server 的特定实例,则DBPROP_INIT_DATASOURCE的值指定为 \\ServerName\InstanceName。 转义序列 \\ 用于反斜杠本身。
DBPROP_INIT_GENERALTIMEOUT 指示请求之前的秒数(数据源初始化和命令执行)超时。值为 0 表示无限超时。通过网络连接或在分布式或事务处理方案中工作的提供程序可以支持此属性,以建议登记的组件在长时间运行的请求时超时。 数据源初始化和命令执行的超时将分别由DBPROP_INIT_TIMEOUT和DBPROP_COMMANDTIMEOUT控制。

DBPROP_INIT_GENERALTIMEOUT为只读,如果尝试设置 DBPROPSTATUS_NOTSETTABLE的 dwstatus 错误,则返回该错误。
DBPROP_INIT_HWND 来自调用应用程序的 Windows 句柄。 当允许提示初始化属性时显示的初始化对话框需要有效的窗口句柄。
DBPROP_INIT_IMPERSONATION_LEVEL SQL Server Native Client OLE DB 访问接口不支持模拟级别调整。

SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_LCID SQL Server Native Client OLE DB 访问接口验证区域设置 ID,并在客户端上不支持或未安装区域设置 ID 时返回错误。
DBPROP_INIT_LOCATION SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_MODE (数据库初始化模式) SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_PROMPT (初始化提示) SQL Server Native Client OLE DB 访问接口支持数据源初始化的所有提示模式。 SQL Server Native Client OLE DB 访问接口使用DBPROMPT_NOPROMPT作为属性的默认设置。
DBPROP_INIT_PROTECTION_LEVEL SQL Server Native Client OLE DB 访问接口不支持连接到 SQL Server 实例的保护级别。

SQL Server Native Client OLE DB 访问接口在尝试设置属性值时返回DB_S_ERRORSOCCURRED。 DBPROP 结构的 dwStatus 成员指示DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_PROVIDERSTRING 请参阅本主题后面的 SQL Server Native Client OLE DB 访问接口字符串。
初始化超时 (DBPROP_INIT_TIMEOUT) 如果无法在指定的秒数内建立到 SQL Server 实例的连接,则 SQL Server Native Client OLE DB 访问接口在初始化时返回错误。

在特定于提供程序的属性集中DBPROPSET_SQLSERVERDBINIT,SQL Server Native Client OLE DB 访问接口定义了这些额外的初始化属性。

属性 ID DESCRIPTION
SSPROP_AUTH_OLD_PASSWORD 类型:VT_BSTR

R/W:写入

默认值:VT_EMPTY

说明:当前密码或过期密码。 有关详细信息,请参阅 以编程方式更改密码
SSPROP_INIT_APPNAME 类型:VT_BSTR

R/W:读/写

说明:客户端应用程序名称。
SSPROP_INIT_AUTOTRANSLATE 类型:VT_BOOL

R/W:读/写

默认值:VARIANT_TRUE

说明:OEM/ANSI 字符转换。

VARIANT_TRUE:SQL Server Native Client OLE DB 访问接口通过 Unicode 转换来转换客户端和服务器之间发送的 ANSI 字符串,以最大程度地减少客户端和服务器上的代码页之间匹配扩展字符的问题:

客户端DBTYPE_STR发送到 SQL Servercharvarchar文本 变量、参数或列实例的数据使用客户端 ANSI 代码页(ACP)从字符转换为 Unicode,然后使用服务器的 ACP 从 Unicode 转换为字符。

使用服务器 ACP 将 SQL Server charvarchar发送到客户端DBTYPE_STR变量的文本 数据从字符转换为 Unicode,然后使用客户端 ACP 从 Unicode 转换为字符。

这些转换由 SQL Server Native Client OLE DB 访问接口在客户端上执行。 这要求在服务器上使用的同一 ACP 在客户端上可用。

这些设置不会影响这些传输发生的转换:

Unicode DBTYPE_WSTR发送到服务器上的 charvarchar文本 的客户端数据。

charvarchar文本 服务器数据发送到客户端上的 Unicode DBTYPE_WSTR 变量。

ANSI DBTYPE_STR发送到服务器上的 Unicode ncharnvarcharntext 的客户端数据。

发送到客户端上的 ANSI DBTYPE_STR变量的 Unicode charvarchar文本 服务器数据。

VARIANT_FALSE:SQL Server Native Client OLE DB 访问接口不执行字符转换。

SQL Server Native Client OLE DB 访问接口不会转换发送到服务器上的 charvarchar文本 变量、参数或列的客户端 ANSI 字符DBTYPE_STR数据。 不会对从服务器发送到客户端上的DBTYPE_STR变量的 charvarchar文本 数据执行任何转换。

如果客户端和 SQL Server 实例使用不同的 ARP,则可以错误解释扩展字符。
SSPROP_INIT_CURRENTLANGUAGE 类型:VT_BSTR

R/W:读/写

说明:SQL Server 语言名称。 标识用于系统消息选择和格式设置的语言。 该语言必须安装在运行 SQL Server 实例的计算机上,否则数据源初始化失败。
SSPROP_INIT_DATATYPECOMPATIBILITY 类型:VT_UI2

R/W:读/写

默认值:0

说明:启用 SQL Server 与 ActiveX 数据对象(ADO)应用程序之间的数据类型兼容性。 如果使用默认值 0,则数据类型处理默认为提供程序使用的数据类型。 如果使用 80 的值,则数据类型处理仅使用 SQL Server 2000 数据类型。 有关详细信息,请参阅 将 ADO 与 SQL Server Native Client 配合使用
SSPROP_INIT_ENCRYPT 类型:VT_BOOL

R/W:读/写

默认值:VARIANT_FALSE

说明:若要加密通过网络传输的数据,SSPROP_INIT_ENCRYPT属性设置为VARIANT_TRUE。

如果启用协议加密,则无论SSPROP_INIT_ENCRYPT的设置如何,都会始终进行加密。 如果关闭,并且SSPROP_INIT_ENCRYPT设置为VARIANT_TRUE,则会进行加密。

如果“启用协议加密”处于关闭状态,并且SSPROP_INIT_ENCRYPT设置为“VARIANT_FALSE”,则不会发生加密。
SSPROP_INIT_FAILOVERPARTNER 类型:VT_BSTR

R/W:读/写

说明:指定数据库镜像的故障转移伙伴的名称。 它是初始化属性,只能在初始化之前设置。 初始化后,它将返回主服务器返回的故障转移伙伴(如果有)。

这允许智能应用程序缓存最近确定的备份服务器,但此类应用程序应注意,仅当首次建立连接(或重置连接时)更新信息,并且长期连接可能过期。

建立连接后,应用程序可以查询此属性以确定故障转移伙伴的标识。 如果主服务器没有故障转移伙伴,则此属性将返回空字符串。 有关详细信息,请参阅 使用数据库镜像
SSPROP_INIT_FILENAME 类型:VT_BSTR

R/W:读/写

说明:指定可附加数据库的主文件名。 此数据库已附加,并成为连接的默认数据库。 若要使用SSPROP_INIT_FILENAME,必须将数据库的名称指定为初始化属性DBPROP_INIT_CATALOG的值。 如果数据库名称不存在,则查找SSPROP_INIT_FILENAME中指定的主文件名,并将该数据库附加DBPROP_INIT_CATALOG中指定的名称。 如果以前附加了数据库,则 SQL Server 不会重新附加它。
SSPROP_INIT_MARSCONNECTION 类型:VT_BOOL

R/W:读/写

默认值:VARIANT_FALSE

说明:指定是否为连接启用了多个活动结果集(MARS)。 在与数据库建立连接之前,必须将此选项设置为 true。 有关详细信息,请参阅使用多重活动结果集 (MARS)
SSPROP_INIT_NETWORKADDRESS 类型:VT_BSTR

R/W:读/写

说明:运行由DBPROP_INIT_DATASOURCE属性指定的 SQL Server 实例的服务器的网络地址。
SSPROP_INIT_NETWORKLIBRARY 类型:VT_BSTR

R/W:读/写

说明:用于与 SQL Server 实例通信的网络图书馆(DLL)的名称。 该名称不应包含路径或 .dll 文件扩展名。

可以使用 SQL Server 客户端配置实用工具自定义默认值。 注意: 此属性仅支持 TCP 和命名管道。 如果将此属性与前缀一起使用,最终会出现一个双前缀,这会导致错误,因为该属性用于在内部生成前缀。
SSPROP_INIT_PACKETSIZE 类型:VT_I4

R/W:读/写

说明:网络数据包大小(以字节为单位)。 数据包大小属性值必须介于 512 和 32,767 之间。 默认 SQL Server Native Client OLE DB 提供程序网络数据包大小为 4,096。
SSPROP_INIT_TAGCOLUMNCOLLATION 类型:BOOL

R/W:写入

默认值:FALSE

说明:在使用服务器端游标时,在数据库更新期间使用。 此属性使用从服务器获取的排序规则信息(而不是客户端上的代码页)标记数据。 目前,此属性仅由分布式查询进程使用,因为它知道目标数据的排序规则并正确转换它。
SSPROP_INIT_TRUST_SERVER_CERTIFICATE 类型:VT_BOOL

R/W:读/写

默认值:VARIANT_FALSE

说明:用于启用或禁用服务器证书验证。 此属性是可读/写的,但在建立连接后尝试设置此属性将导致错误。

如果客户端配置为要求证书验证,则忽略此属性。 但是,应用程序可以将其与SSPROP_INIT_ENCRYPT一起使用,以确保其与服务器的连接已加密,即使客户端配置为不需要加密,也没有在客户端上预配证书。

客户端应用程序可以在打开连接后查询此属性,以确定正在使用的实际加密和验证设置。 注意: 在没有证书验证的情况下使用加密可以部分保护数据包探查,但它不会防范中间人攻击。 它只允许加密发送到服务器的登录名和数据,而无需验证服务器证书。

有关详细信息,请参阅 不使用验证使用加密
SSPROP_INIT_USEPROCFORPREP 类型:VT_I4

R/W:读/写

默认值:SSPROPVAL_USEPROCFORPREP_ON

说明:SQL Server 存储过程使用。 定义使用 SQL Server 临时存储过程来支持 ICommandPrepare 接口。 仅当连接到 SQL Server 6.5 时,此属性才有意义。 对于更高版本,该属性将被忽略。

SSPROPVAL_USEPROCFORPREP_OFF:准备命令时不会创建临时存储过程。

SSPROPVAL_USEPROCFORPREP_ON:准备命令时会创建临时存储过程。 释放会话时,将删除临时存储过程。

SSPROPVAL_USEPROCFORPREP_ON_DROP:准备命令时会创建临时存储过程。 使用 ICommandPrepare::Unprepare 为命令对象指定新命令 时,或者释放对命令的所有应用程序引用时,将删除该过程。
SSPROP_INIT_WSID 类型:VT_BSTR

R/W:读/写

说明:标识工作站的字符串。

在特定于提供程序的属性集中DBPROPSET_SQLSERVERDATASOURCEINFO,SQL Server Native Client OLE DB 访问接口定义其他属性;有关详细信息,请参阅 数据源信息属性

SQL Server Native Client OLE DB 访问接口字符串

SQL Server Native Client OLE DB 访问接口在提供程序字符串属性值中识别类似于 ODBC 的语法。 当建立到 OLE DB 数据源的连接时,提供程序字符串属性作为 OLE DB 初始化属性的值提供DBPROP_INIT_PROVIDERSTRING。 此属性指定实现与 OLE DB 数据源的连接所需的特定于 OLE DB 提供程序的连接数据。 在字符串中,元素使用分号分隔。 字符串中的最后一个元素必须以分号终止。 每个元素由关键字、等号字符和在初始化时传递的值组成。 例如:

Server=MyServer;UID=MyUserName;  

使用 SQL Server Native Client OLE DB 提供程序时,使用者永远不需要使用提供程序字符串属性。 使用者可以使用 OLE DB 或 SQL Server Native Client OLE DB 提供程序特定的初始化属性设置提供程序字符串中反映的任何初始化属性。

有关 SQL Server Native Client OLE DB 提供程序中可用的关键字的列表,请参阅 将连接字符串关键字与 SQL Server Native Client 配合使用

另请参阅

数据源对象 (OLE DB)