Native Client OLE DB) 提供者的初始化和授權屬性 (

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

SQL Server Native Client (通常縮寫為 SNAC) 已從 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除。 不建議使用 SQL Server Native Client OLE DB 提供者 (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 進行新的開發。 請切換至新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 以繼續使用。

SQL Server Native Client OLE DB 提供者會解譯 OLE DB 初始化和授權屬性,如下所示:

屬性識別碼 描述
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 提供者會使用標準 Microsoft SQL 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 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 執行 Microsoft SQL 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 提供者會驗證地區設定識別碼,並在用戶端上不支援或未安裝地區設定識別碼時傳回錯誤。
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 提供者會定義這些額外的初始化屬性。

屬性識別碼 描述
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 字元字串,以將用戶端與伺服器字碼頁之間的相符擴充字元問題降到最低:

傳送至 SQL Server char、Varchartext變數、參數或資料行實例的用戶端DBTYPE_STR資料會使用用戶端 ANSI 字碼頁轉換成 Unicode, (ACP) ,然後使用伺服器的 ACP 從 Unicode 轉換成字元。

傳送到用戶端 DBTYPE_STR 變數的 SQL Server charvarchartext 資料會使用伺服器 ACP 從字元轉換成 Unicode,然後使用用戶端 ACP 從 Unicode 轉換成字元。

這些轉換是由 SQL Server Native Client OLE DB 提供者在用戶端上執行。 但是在伺服器上使用的相同 ACP 必須也可以在用戶端上使用。

這些設定對於進行下列傳輸時所發生的轉換沒有作用:

傳送到伺服器之 charvarchartext 的 Unicode DBTYPE_WSTR 用戶端資料。

傳送到用戶端之 Unicode DBTYPE_WSTR 變數的 charvarchartext 伺服器資料。

傳送到伺服器之 ncharnvarcharntext 的 ANSI DBTYPE_STR 用戶端資料。

傳送到用戶端之 ANSI DBTYPE_STR 變數的 Unicode charvarchartext 伺服器資料。

VARIANT_FALSE:SQL Server Native Client OLE DB 提供者不會執行字元轉譯。

SQL Server Native Client OLE DB 提供者不會轉譯傳送至伺服器上charVarchartext變數、參數或資料行的用戶端 ANSI 字元DBTYPE_STR。 在從伺服器傳送到用戶端之 DBTYPE_STR 變數的 charvarchartext 資料上不會執行任何轉譯。

如果用戶端和 SQL Server 執行個體使用不同的 ACP,可能會錯誤解譯擴充字元。
SSPROP_INIT_CURRENTLANGUAGE 輸入:VT_BSTR

R/W︰讀取/寫入

描述:SQL Server 語言名稱。 識別系統訊息選取與格式所使用的語言。 此語言必須安裝在執行 SQL Server 執行個體的電腦上,否則資料來源初始化會失敗。
SSPROP_INIT_DATATYPECOMPATIBILITY 輸入:VT_UI2

R/W︰讀取/寫入

預設值:0

描述:允許 SQL Server 和 ActiveX Data Objects (ADO) 應用程式之間的資料類型相容性。 如果使用預設值 0,資料類型處理會預設為提供者所使用的資料類型。 如果使用的值為 80,資料類型處理僅會使用 SQL Server 2000 (8.x) 資料類型。 如需詳細資訊,請參閱搭配使用 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

描述:指定是否要針對連線啟用 Multiple Active Result Set (MARS)。 在連接到資料庫之前,必須將此選項設定為 True。 如需詳細資訊,請參閱使用 Multiple Active Result Sets (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 取消準備命令時、使用 ICommandText::SetCommandText 指定命令物件的新命令時,或是釋出命令的所有應用程式參考時,會卸除此程序。
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)