適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 資料庫
OLE DB Driver for SQL Server 會解譯 OLE DB 初始化和授權屬性,如下所示:
| 屬性識別碼 | 描述 |
|---|---|
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 DB 驅動程式會使用 Windows 認證模式授權使用者存取由 DBPROP_INIT_DATASOURCE and DBPROP_INIT_CATALOG 屬性指定的 SQL Server 資料庫。如果設定為 VT_EMPTY (預設值),則使用 SQL Server 安全性。 SQL Server 登入與密碼會在 and 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 |
OLE DB Driver for SQL Server 會保存驗證值,包括密碼的影像 (若有要求)。 不提供任何加密。 |
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_COMMANDTIMEOUT控制DBPROP_INIT_TIMEOUT。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 |
請參閱本文後面的 OLE DB 驅動程式 SQL Server 字串。 |
DBPROP_INIT_TIMEOUT |
如果無法在指定秒數內建立與 SQL Server 實例的連線,OLE DB 驅動程式會在初始化時回傳錯誤。 |
在提供者專用屬性集合 DBPROPSET_SQLSERVERDBINIT中,SQL Server 的 OLE DB 驅動程式定義了這些額外的初始化屬性。
| 屬性識別碼 | 描述 |
|---|---|
SSPROP_AUTH_ACCESS_TOKEN
1 |
類型:VT_BSTRR/W:讀/寫 預設值: VT_EMPTY說明:用於驗證 Microsoft Entra ID 的存取權杖。 注意:指定此屬性 UID以及 、 PWD、 Trusted_Connection、 Authentication 或連接字串關鍵字或其對應屬性/關鍵字是錯誤的。 |
SSPROP_AUTH_MODE
1 |
類型:VT_BSTRR/W:讀/寫 預設值: VT_EMPTY說明:指定所使用的 SQL 或 Microsoft Entra 認證。 有效值為:
注意:此 ActiveDirectoryIntegrated 關鍵字也可用於 Windows 對 SQL Server 的驗證。 該關鍵字會取代 Integrated Security (或 Trusted_Connection) 驗證關鍵字。 使用 Integrated Security (或 Trusted_Connection)關鍵字或其對應屬性的應用程式,應設定關鍵字(或其對應屬性)的 Authentication 值,以 ActiveDirectoryIntegrated 啟用新的加密與憑證驗證行為。注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為。 |
SSPROP_AUTH_OLD_PASSWORD |
類型:VT_BSTR寫作:寫作 預設值: VT_EMPTY說明:目前或過期的密碼。 如需詳細資訊,請參閱 以程式設計方式變更密碼。 |
SSPROP_INIT_APPNAME |
類型:VT_BSTRR/W:讀/寫 說明:客戶應用程式名稱。 |
SSPROP_INIT_AUTOTRANSLATE |
類型:VT_BOOLR/W:讀/寫 預設值: VARIANT_TRUE說明:OEM/ANSI 字元轉換。 VARIANT_TRUE:SQL Server 的 OLE DB 驅動程式透過 Unicode 轉換,將用戶端與伺服器間傳送的 ANSI 字串轉換,以減少用戶端與伺服器端代碼頁間擴充字元匹配的問題:傳送到 SQL Server 實例的客戶端 DBTYPE_STR 資料 char、 varchar 或 文字 變數、參數或欄位,會先使用用戶端的 ANSI 代碼頁(ACP)從字元轉換成 Unicode,然後再用伺服器的 ACP 從 Unicode 轉換成字元。SQL Server 的 字元、 varchar 或 文字 資料傳送到用戶端 DBTYPE_STR 變數,會先用伺服器 ACP 從字元轉換成 Unicode,再用用戶端 ACP 從 Unicode 轉換成字元。若是 OLE DB Driver 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或文字伺服器資料傳送到用戶端的 Unicode DBTYPE_WSTR 變數。ANSI DBTYPE_STR 用戶端資料傳送至 Unicode nchar、 nvarchar 或伺服器上的 ntext 資料。Unicode 的 char、 varchar 或 文字 伺服器資料傳送到用戶端的 ANSI DBTYPE_STR 變數。VARIANT_FALSESQL Server 的 OLE DB 驅動程式不執行字元轉換。SQL Server 的 OLE DB 驅動程式不會將傳送到 char、varchar 或伺服器上的文字變數、參數或欄位的用戶端 ANSI 字元 DBTYPE_STR資料轉換。 伺服器傳送的 字元、 varchar 或 文字 資料不會被轉譯到 DBTYPE_STR 用戶端的變數。 同樣地,若是 OLE DB Driver 18.6.4 和 19.1+ 版,驅動程式不會轉譯 SSVARIANT 結構的 CharVal 成員與 SQL Server 執行個體 sql_variant 變數、參數或資料行之間傳輸的資料。如果用戶端和 SQL Server 執行個體使用不同的 ACP,可能會錯誤解譯擴充字元。 |
SSPROP_INIT_CONNECT_RETRY_COUNT |
類型:VT_I4R/W:讀/寫 預設值: 1說明:控制連線中斷時的重連嘗試次數。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。 |
SSPROP_INIT_CONNECT_RETRY_INTERVAL |
類型:VT_I4R/W:讀/寫 預設值: 10說明:在連線中斷時,規定每次連線重試嘗試之間的間隔間隔。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。 |
SSPROP_INIT_CURRENTLANGUAGE |
類型:VT_BSTRR/W:讀/寫 說明:SQL Server 語言名稱。 識別系統訊息選取與格式所使用的語言。 此語言必須安裝在執行 SQL Server 執行個體的電腦上,否則資料來源初始化會失敗。 |
SSPROP_INIT_DATATYPECOMPATIBILITY |
類型:VT_UI2R/W:讀/寫 預設值: 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_BSTRR/W:讀/寫 說明:指定資料庫鏡像的故障轉移夥伴名稱。 這是一個初始化屬性,只能在初始化前設定。 初始化後,會回傳由主要伺服器回傳的故障轉移夥伴(如有)。 這讓智慧應用程式能夠快取最近確定的備份伺服器,但這類應用程式應考慮資訊僅在連線首次建立(或若是池化時重置)時才會更新,且對於長期連線而言可能會過時。 連接完成後,應用程式可以查詢此屬性以確定故障轉移夥伴的身份。 若主伺服器沒有故障轉移夥伴,此屬性會回傳空字串。 如需詳細資訊,請參閱使用資料庫鏡像。 |
SSPROP_INIT_FAILOVERPARTNERSPN |
類型:VT_BSTRR/W:讀/寫 預設值: VT_EMPTY說明:指定故障轉移夥伴的 SPN。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。 |
SSPROP_INIT_FILENAME |
類型:VT_BSTRR/W:讀/寫 說明:指定可附加資料庫的主要檔案名稱。 此資料庫會附加,而且變成連接的預設資料庫。 要使用 SSPROP_INIT_FILENAME,你必須指定資料庫名稱作為初始化屬性 DBPROP_INIT_CATALOG的值。 如果資料庫名稱不存在,它會尋找 中 SSPROP_INIT_FILENAME 指定的主檔名,並將該資料庫附加到 DBPROP_INIT_CATALOG。 如果資料庫之前已經附加,SQL Server 不會重新連接。 |
SSPROP_INIT_HOST_NAME_CERTIFICATE |
類型:VT_BSTRR/W:讀/寫 預設值: VT_EMPTY說明:用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果屬性未設定, SSPROP_INIT_HOST_NAME_CERTIFICATE 驅動程式會用該 DBPROP_INIT_DATASOURCE 屬性值作為主機名稱來驗證 SQL Server 的 TLS/SSL 憑證。 |
SSPROP_INIT_MARSCONNECTION |
類型:VT_BOOLR/W:讀/寫 預設值: VARIANT_FALSE說明:規定連線是否啟用多個主動結果集(MARS)。 在連接到資料庫之前,必須將此選項設定為 True。 如需詳細資訊,請參閱使用 Multiple Active Result Sets (MARS)。 |
SSPROP_INIT_MULTISUBNETFAILOVER |
類型:VT_BOOLR/W:讀/寫 預設值: VARIANT_FALSE說明:MultiSubnetFailover 使 SQL Server 中所有 Always On 可用性群組與 Failover 叢集實例能更快切換,並大幅縮短單一及多子網 Always On 拓撲的故障轉移時間。 在多子網故障轉移期間,用戶端嘗試平行連線。 如需詳細資訊,請參閱 OLE DB Driver for SQL Server 對於高可用性、災害復原的支援。 |
SSPROP_INIT_NETWORKADDRESS |
類型:VT_BSTRR/W:讀/寫 說明:由屬性 DBPROP_INIT_DATASOURCE 指定、執行 SQL Server 實例的伺服器的網路位址。 |
SSPROP_INIT_NETWORKLIBRARY |
類型:VT_BSTRR/W:讀/寫 說明:用於與 SQL Server 實例通訊的網路函式庫(DLL)名稱。 名稱不應該包含路徑或 .dll 檔名副檔名。 可以使用 SQL Server 用戶端組態公用程式自訂預設。 注意:此特性僅支援 TCP 與命名管線。 如果您搭配前置詞使用此屬性,將會產生雙前置詞並導致錯誤,因為會使用此屬性來在內部產生前置詞。 |
SSPROP_INIT_PACKETSIZE |
類型:VT_I4R/W:讀/寫 說明:以位元組為單位的表格資料串流(TDS)封包大小。 封包大小的屬性值必須介於 0 512 到 32,767 之間。 預設值為 0,表示實際封包大小由伺服器決定。 |
SSPROP_INIT_SERVER_CERTIFICATE |
類型:VT_BSTRR/W:讀/寫 預設值: VT_EMPTY說明:指定憑證檔案的路徑,以與 SQL Server TLS/SSL 憑證相符。 必須啟用 Strict 加密,才能使用此選項。 接受的憑證格式為 PEM、DER 和 CER。 如有指定,則會查看提供的憑證是否完全相符,藉此檢查 SQL Server 憑證。 |
SSPROP_INIT_SERVERSPN |
類型:VT_BSTRR/W:讀/寫 預設值: VT_EMPTY說明:指定伺服器的 SPN。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。 |
SSPROP_INIT_TAGCOLUMNCOLLATION |
類型:VT_BOOL寫作:寫作 預設值: VARIANT_FALSE說明:在資料庫更新時使用伺服器端游標時使用。 此屬性會使用從伺服器 (而非用戶端的字碼頁) 取得的定序資訊標記資料。 目前只有分散式查詢處理使用此屬性,因為它知道目的地資料的定序,而且會正確轉換該定序。 |
SSPROP_INIT_TNIR |
類型:VT_BOOLR/W:讀/寫 預設值: VARIANT_TRUE說明:當主機名稱關聯多個 IP 時,當主機名稱的第一個解析 IP 未回應時,TNIR 會影響連線順序。 TNIR 會與 MultiSubnetFailover 互動,以提供不同的連線順序。 如需詳細資訊,請參閱使用透明網路 IP 解析。 |
SSPROP_INIT_TRUST_SERVER_CERTIFICATE
1 |
類型:VT_BOOLR/W:讀/寫 預設值: VARIANT_FALSE說明:用於啟用或停用伺服器憑證驗證。 此屬性是讀寫的,但在建立連線後嘗試設定會發生錯誤。 如果將用戶端設定為需要憑證驗證,則會忽略此屬性。 然而,應用程式可以同時 SSPROP_INIT_ENCRYPT 使用它來確保其與伺服器的連線是加密的,即使用戶端設定為不需加密且用戶端未設定憑證。用戶端應用程式可以在開啟連接之後查詢此屬性,以便判斷使用中的實際加密和驗證設定。 注意:使用加密而不進行憑證驗證,能部分防止封包嗅探,但無法防止中間人攻擊。 它允許加密登入資料及傳送到伺服器的資料,而無需驗證伺服器憑證。 如需詳細資訊,請參閱 OLE 資料庫中的加密和憑證驗證。 |
SSPROP_INIT_USEPROCFORPREP |
類型:VT_I4R/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_BSTRR/W:讀/寫 說明:一條字串用來識別工作站。 |
1 為提升安全性,當使用認證/存取令牌初始化屬性或其對應的連接字串關鍵字時,會修改加密與憑證驗證行為。 如需詳細資訊,請參閱加密和憑證驗證。
在提供者專用屬性集合 DBPROPSET_SQLSERVERDATASOURCEINFO中,SQL Server 的 OLE DB 驅動程式定義了額外的屬性。 欲了解更多資訊,請參閱 資料來源資訊屬性。
SQL Server 字串的 OLE DB 驅動程式
OLE DB Driver for SQL Server 會在提供者字串屬性值中辨識類似 ODBC 的語法。 提供者字串屬性作為 OLE DB 初始化屬性 DBPROP_INIT_PROVIDERSTRING 的值,當建立與 OLE DB 資料來源的連線時提供。 此屬性會將實作連接所需的 OLE DB 提供者專屬連接資料指定給 OLE DB 資料來源。 在字串內,這些元素會使用分號分隔。 字串中的最終元素必須以分號結束。 每個元素都由一個關鍵字、一個等號字元,以及初始化時傳遞的值所組成。 例如:
Server=MyServer;UID=MyUserName;
使用 OLE DB Driver for SQL Server 時,取用者永遠都不需使用提供者字串屬性。 取用者可以使用 OLE DB 或 OLE DB Driver for SQL Server 專屬的初始化屬性,設定反映在提供者字串中的任何初始化屬性。
關於 OLE DB 驅動程式中可用的關鍵字清單,請參見「 使用 OLE DB 驅動程式中的連接字串關鍵字。」