初始化和授權屬性 (Native Client OLE DB Provider)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics 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 字元字串,以將用戶端與伺服器代碼頁之間比對擴充字元的問題降到最低: 用戶端DBTYPE_STR傳送至 SQL Serverchar、 varchar 或 text 變數、參數或數據行實例的數據會使用用戶端 ANSI 代碼頁 (ACP) 從字元轉換成 Unicode,然後使用伺服器的 ACP 從 Unicode 轉換成字元。 傳送到用戶端 DBTYPE_STR 變數的 SQL Server char、varchar 或 text 資料會使用伺服器 ACP 從字元轉換成 Unicode,然後使用用戶端 ACP 從 Unicode 轉換成字元。 這些轉換是由 SQL Server Native Client OLE DB 提供者在用戶端上執行。 但是在伺服器上使用的相同 ACP 必須也可以在用戶端上使用。 這些設定對於進行下列傳輸時所發生的轉換沒有作用: 傳送到伺服器之 char、varchar 或 text 的 Unicode DBTYPE_WSTR 用戶端資料。 傳送到用戶端之 Unicode DBTYPE_WSTR 變數的 char、varchar 或 text 伺服器資料。 傳送到伺服器之 nchar、nvarchar 或 ntext 的 ANSI DBTYPE_STR 用戶端資料。 傳送到用戶端之 ANSI DBTYPE_STR 變數的 Unicode char、varchar 或 text 伺服器資料。 VARIANT_FALSE:SQL Server Native Client OLE DB 提供者不會執行字元轉譯。 SQL Server Native Client OLE DB 提供者不會轉譯傳送至伺服器上 char、varchar 或 text 變數、參數或數據行的用戶端 ANSI 字元DBTYPE_STR數據。 在從伺服器傳送到用戶端之 DBTYPE_STR 變數的 char、varchar 或 text 資料上不會執行任何轉譯。 如果用戶端和 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) 資料類型。 如需詳細資訊,請參閱 搭配 SQL Server Native Client 使用 ADO。 |
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 使用連接字元串關鍵詞。