初始化和授權屬性

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

下載 OLE DB 驅動程式

OLE DB Driver for SQL Server 會解譯 OLE DB 初始化和授權屬性,如下所示:

屬性識別碼 描述
DBPROP_AUTH_CACHE_AUTHINFO OLE DB Driver for SQL Server 不會快取驗證資訊。

OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 DB_S_ERRORSOCCURRED。 DBPROP 結構的 dwStatus 成員表示 DBPROPSTATUS_NOTSUPPORTED。
DBPROP_AUTH_ENCRYPT_PASSWORD OLE DB Driver for SQL Server 使用標準的 Microsoft SQL Server 安全性機制來隱藏密碼。

OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 DB_S_ERRORSOCCURRED。 DBPROP 結構的 dwStatus 成員表示 DBPROPSTATUS_NOTSUPPORTED。
DBPROP_AUTH_INTEGRATED 如果 DBPROP_AUTH_INTEGRATED 設定為 NULL 指標、null 字串或 'SSPI' VT_BSTR 值,OLE DB Driver for SQL Server 就會使用 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 OLE DB Driver for SQL Server 使用標準的 SQL Server 安全性機制來隱藏密碼。

OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 DB_S_ERRORSOCCURRED。 DBPROP 結構的 dwStatus 成員表示 DBPROPSTATUS_NOTSUPPORTED。
DBPROP_AUTH_PASSWORD 指派給 SQL Server 登入的密碼。 選取 SQL Server 驗證來授權對於 SQL Server 資料庫的存取時,會使用此屬性。
DBPROP_AUTH_PERSIST_ENCRYPTED OLE DB Driver for SQL Server 不會在保存時加密驗證資訊。

OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 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 支援非同步初始化。

在 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 OLE DB Driver for SQL Server 不支援模擬等級調整。

OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 DB_S_ERRORSOCCURRED。 DBPROP 結構的 dwStatus 成員表示 DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_LCID 如果不支援地區設定識別碼,或者沒有安裝在用戶端上,OLE DB Driver for SQL Server 會驗證地區設定識別碼,並傳回錯誤。
DBPROP_INIT_LOCATION OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 DB_S_ERRORSOCCURRED。 DBPROP 結構的 dwStatus 成員表示 DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_MODE OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 DB_S_ERRORSOCCURRED。 DBPROP 結構的 dwStatus 成員表示 DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_PROMPT OLE DB Driver for SQL Server 支援資料來源初始化的所有提示模式。 OLE DB Driver for SQL Server 會使用 DBPROMPT_NOPROMPT 作為屬性的預設值。
DBPROP_INIT_PROTECTION_LEVEL OLE DB Driver for SQL Server 不支援 SQL Server 執行個體連線的保護等級。

OLE DB Driver for SQL Server 會在嘗試設定屬性值時,傳回 DB_S_ERRORSOCCURRED。 DBPROP 結構的 dwStatus 成員表示 DBPROPSTATUS_NOTSUPPORTED。
DBPROP_INIT_PROVIDERSTRING 請參閱本主題稍後的 OLE DB Driver for SQL Server 字串。
DBPROP_INIT_TIMEOUT 如果無法在指定的秒數內建立與 SQL Server 執行個體的連線,OLE DB Driver for SQL Server 會在初始化時傳回錯誤。

在提供者專屬的屬性集 DBPROPSET_SQLSERVERDBINIT 中,OLE DB Driver for SQL Server 會定義這些額外的初始化屬性。

屬性識別碼 描述
SSPROP_AUTH_ACCESS_TOKEN1 輸入:VT_BSTR

R/W︰讀取/寫入

預設值:VT_EMPTY

描述:用來向 Microsoft Entra ID 進行驗證的存取令牌。

注意: 指定此屬性,並同時指定 UIDPWDTrusted_ConnectionAuthentication 連接字串關鍵字或其對應的屬性/關鍵字是錯誤的。
SSPROP_AUTH_MODE1 輸入:VT_BSTR

R/W︰讀取/寫入

預設值:VT_EMPTY

描述:指定使用的 SQL 或 Microsoft Entra 驗證。 有效值為:
  • (not set):由其他關鍵字決定的驗證模式。
  • (empty string):將先前設定的驗證模式取消設定。
  • ActiveDirectoryPassword:使用 Microsoft Entra 身分識別進行使用者名稱和密碼驗證。
  • ActiveDirectoryIntegrated: 使用 Microsoft Entra 身分識別進行整合式驗證。

  • 注意:ActiveDirectoryIntegrated 關鍵字也可用於向 SQL Server 進行的 Windows 驗證。 該關鍵字會取代 Integrated Security (或 Trusted_Connection) 驗證關鍵字。 建議使用 Integrated Security (或 Trusted_Connection) 關鍵字或其對應屬性的應用程式將 Authentication 關鍵字 (或其對應的屬性) 的值設定為 ActiveDirectoryIntegrated,以啟用新的加密和憑證驗證行為。

  • ActiveDirectoryInteractive: 使用 Microsoft Entra 身分識別進行互動式驗證。 此方法支援 Microsoft Entra 多重要素驗證。
  • ActiveDirectoryMSI:受控識別 驗證。 針對使用者指派的識別,應該將使用者識別碼設定為使用者識別的物件識別碼。
  • ActiveDirectoryServicePrincipal: 使用 Microsoft Entra 應用程式進行服務主體驗證。 使用者識別碼應該要設定成應用程式 (用戶端) 識別碼。 密碼應該要設定成應用程式 (用戶端) 祕密。
  • SqlPassword:利用使用者識別碼和密碼進行的驗證。

  • 注意:建議使用 SQL Server 驗證的應用程式將 Authentication 關鍵字 (或其對應的屬性) 的值設定為 SqlPassword,以啟用新的加密和憑證驗證行為
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:OLE DB Driver for SQL Server 會透過 Unicode 進行轉換,藉以轉譯在用戶端和伺服器之間傳送的 ANSI 字元字串,以大幅減少在用戶端和伺服器上之字碼頁間比對擴充字元的問題:

傳送到 SQL Server 執行個體 charvarchartext 變數、參數或資料行的用戶端 DBTYPE_STR 資料會使用用戶端的 ANSI 字碼頁 (ACP),從字元轉換成 Unicode,然後使用伺服器的 ACP,從 Unicode 轉換成字元。

傳送到用戶端 DBTYPE_STR 變數的 SQL Server charvarchartext 資料會使用伺服器 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 必須也可以在用戶端上使用。

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

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

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

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

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

VARIANT_FALSE:OLE DB Driver for SQL Server 不會執行字元轉譯。

OLE DB Driver for SQL Server 不會轉譯傳送到伺服器之 charvarchartext 變數、參數或資料行的用戶端 ANSI 字元 DBTYPE_STR 資料。 在從伺服器傳送到用戶端之 DBTYPE_STR 變數的 charvarchartext 資料上不會執行任何轉譯。 同樣地,若是 OLE DB Driver 18.6.4 和 19.1+ 版,驅動程式不會轉譯 SSVARIANT 結構的 CharVal 成員與 SQL Server 執行個體 sql_variant 變數、參數或資料行之間傳輸的資料。

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

R/W︰讀取/寫入

預設值:1

描述:控制連線遺失時的重新連線嘗試次數。 如需詳細資訊,請參閱閒置連線復原
SSPROP_INIT_CONNECT_RETRY_INTERVAL 輸入:VT_I4

R/W︰讀取/寫入

預設值:10

描述:指定連線遺失時,每次連線重試嘗試之間的秒數。 如需詳細資訊,請參閱閒置連線復原
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 與 OLE DB Driver for SQL Server
SSPROP_INIT_DISCOVEREDSERVERSPN 輸入:VT_BSTR

R/W:讀取

描述:用來查詢連線的伺服器 SPN。 (18.6.3 版或更新版本)
SSPROP_INIT_ENCRYPT1 輸入:VT_BSTR

R/W:讀取/寫入

預設: Mandatory

描述:指定是否要加密透過網路傳輸的資料。

如果 [強制通訊協定加密] 已開啟,不管 SSPROP_INIT_ENCRYPT 的設定為何,永遠會進行加密。 如果關閉此設定,而且 SSPROP_INIT_ENCRYPT 設定為 MandatoryStrict,則會進行加密。

如果關閉 [強制通訊協定加密],而且 SSPROP_INIT_ENCRYPT 設定為 Optional,則不會進行加密。 有效值為:OptionalMandatoryStrict。 若為 18.x.x 版,請參閱 MSOLEDBSQL 主要版本差異
SSPROP_INIT_FAILOVERPARTNER 輸入:VT_BSTR

R/W︰讀取/寫入

描述:指定要進行資料庫鏡像之容錯移轉夥伴的名稱。 這是初始化屬性,而且僅能在初始化之前設定。 初始化之後,它會傳回容錯移轉夥伴,如果有的話,則會由主要伺服器傳回。

這可讓智慧型應用程式快取最近決定的備份伺服器,但是此類應用程式應該會注意到此資訊只會在第一次建立 (如果緩衝,則為重設) 連線時更新,且針對長時間的連線可能會過期。

建立連接後,應用程式可以查詢此屬性來判斷容錯移轉夥伴的識別。 如果主要伺服器沒有容錯移轉夥伴,此屬性將會傳回空字串。 如需詳細資訊,請參閱使用資料庫鏡像
SSPROP_INIT_FAILOVERPARTNERSPN 輸入:VT_BSTR

R/W︰讀取/寫入

預設值:VT_EMPTY

描述:指定容錯移轉夥伴的 SPN。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
SSPROP_INIT_FILENAME 輸入:VT_BSTR

R/W︰讀取/寫入

描述:指定可附加資料庫的主要檔案名稱。 此資料庫會附加,而且變成連接的預設資料庫。 若要使用 SSPROP_INIT_FILENAME,您必須將資料庫的名稱指定為初始化屬性 DBPROP_INIT_CATALOG 的值。 如果資料庫名稱不存在,則會尋找在 SSPROP_INIT_FILENAME 中指定的主要檔案名稱,並以 DBPROP_INIT_CATALOG 中指定的名稱附加該資料庫。 如果先前已附加資料庫,SQL Server 不會重新予以附加。
SSPROP_INIT_HOST_NAME_CERTIFICATE 輸入:VT_BSTR

R/W︰讀取/寫入

預設值:VT_EMPTY

描述:用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果未設定 SSPROP_INIT_HOST_NAME_CERTIFICATE 屬性,驅動程式會使用 DBPROP_INIT_DATASOURCE 屬性值作為主機名稱,以驗證 SQL Server TLS/SSL 憑證。
SSPROP_INIT_MARSCONNECTION 輸入:VT_BOOL

R/W︰讀取/寫入

預設值:VARIANT_FALSE

描述:指定是否要針對連線啟用 Multiple Active Result Set (MARS)。 在連接到資料庫之前,必須將此選項設定為 True。 如需詳細資訊,請參閱使用 Multiple Active Result Sets (MARS)
SSPROP_INIT_MULTISUBNETFAILOVER 輸入:VT_BOOL

R/W︰讀取/寫入

預設值:VARIANT_FALSE

描述:MultiSubnetFailover 可讓所有 Always On 可用性群組和 SQL Server 中的容錯移轉叢集執行個體容錯移轉得更快,並大幅縮短單一和多重子網路 Always On 拓撲的容錯移轉時間。 在多重子網路容錯移轉期間,用戶端會平行嘗試連接。 如需詳細資訊,請參閱 OLE DB Driver for SQL Server 對於高可用性、災害復原的支援
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︰讀取/寫入

描述:表格式資料流 (TDS) 封包大小 (位元組)。 封包大小屬性值必須為 0 或介於 512 和 32,767 之間。 預設值為 0,這表示實際的封包大小將由伺服器決定。
SSPROP_INIT_SERVER_CERTIFICATE 輸入:VT_BSTR

R/W︰讀取/寫入

預設值:VT_EMPTY

描述:指定要與 SQL Server TLS/SSL 憑證相符的憑證檔案所在路徑。 必須啟用 Strict 加密,才能使用此選項。 接受的憑證格式為 PEM、DER 和 CER。 如有指定,則會查看提供的憑證是否完全相符,藉此檢查 SQL Server 憑證。
SSPROP_INIT_SERVERSPN 輸入:VT_BSTR

R/W︰讀取/寫入

預設值:VT_EMPTY

描述:指定伺服器的 SPN。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
SSPROP_INIT_TAGCOLUMNCOLLATION 輸入:VT_BOOL

R/W︰寫入

預設值:VARIANT_FALSE

描述:使用伺服器端資料指標時,會在資料庫更新期間使用。 此屬性會使用從伺服器 (而非用戶端的字碼頁) 取得的定序資訊標記資料。 目前只有分散式查詢處理使用此屬性,因為它知道目的地資料的定序,而且會正確轉換該定序。
SSPROP_INIT_TNIR 輸入:VT_BOOL

R/W︰讀取/寫入

預設值:VARIANT_TRUE

描述:當有多個與主機名稱建立關聯的 IP,且第一個解析的主機名稱 IP 沒有回應時,TNIR 會影響連線順序。 TNIR 會與 MultiSubnetFailover 互動,以提供不同的連線順序。 如需詳細資訊,請參閱使用透明網路 IP 解析
SSPROP_INIT_TRUST_SERVER_CERTIFICATE1 輸入: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︰讀取/寫入

描述:識別工作站的字串。

[1]:若要提升安全性,使用驗證/存取權杖初始化屬性或其對應的連接字串關鍵字時,會修改加密和憑證驗證行為。 如需詳細資訊,請參閱加密和憑證驗證

在提供者特定的屬性集 DBPROPSET_SQLSERVERDATASOURCEINFO 中,OLE DB Driver for SQL Server 會定義其他屬性;如需詳細資訊,請參閱資料來源資訊屬性

OLE DB Driver for SQL Server 字串

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 或 OLE DB Driver for SQL Server 專屬的初始化屬性,設定反映在提供者字串中的任何初始化屬性。

如需 OLE DB Driver for SQL Server 中可用的關鍵字清單,請參閱利用 OLE DB Driver for SQL Server 使用連接字串關鍵字

另請參閱

資料來源物件 (OLE DB)