搭配 OLE DB Driver for SQL Server 使用連接字串關鍵詞

下載 OLE DB 驅動程式

OLE DB Driver for SQL Server 中的某些 API 會使用連接字串來指定連線屬性。 連接字串是關鍵字和關聯值的清單,每一個關鍵字都會識別特定的連線屬性。

注意

OLE DB Driver for SQL Server 允許連線字串的歧義,以維持向下相容性。 例如,你可以指定某些關鍵字不只一次,驅動程式可能會允許衝突關鍵字並依位置或優先順序解決。 未來的 OLE DB Driver for SQL Server 版本可能不允許模稜兩可的連接字串。 當你修改使用 OLE DB Driver for SQL Server 的應用程式時,請移除對 連接字串 歧義的任何依賴。

下列各節描述當使用 OLE DB Driver for SQL Server 作為資料提供者時,可以搭配 OLE DB Driver for SQL Server 和 ActiveX Data Objects (ADO) 使用的關鍵字。

OLE DB 驅動程式連接字串關鍵字

OLE DB 應用程式有兩種方法可初始化資料來源物件:

  • IDBInitialize::Initialize
  • IDataInitialize::GetDataSource

在第一種情況下,提供者字串可以用來初始化連接屬性,方法是將該屬性 DBPROP_INIT_PROVIDERSTRING 設在屬性 DBPROPSET_DBINIT 集中。 在第二種情況下,可以將初始化字串傳給 IDataInitialize::GetDataSource 方法以初始化連接屬性。 這兩個方法都會初始化相同的 OLE DB 連接屬性,但是會使用不同的關鍵字集合。 所 IDataInitialize::GetDataSource 使用的關鍵字集合至少是初始化屬性群組內屬性的描述。

如果任何提供者字串設定所包含的對應 OLE DB 屬性設定為預設值或明確設定為某個值,OLE DB 屬性值將在提供者字串中覆寫此設定。

透過DBPROP_INIT_PROVIDERSTRING中的值來設定的布林屬性會使用yes和no來設定。 初始化字串中的布林屬性是使用IDataInitialize::GetDataSource設定,並以值true和false進行設定。

應用程式 IDataInitialize::GetDataSource 也可以使用IDBInitialize::Initialize的關鍵字,但僅限於那些沒有預設值的屬性。 如果應用程式在初始化字串中同時使用 IDataInitialize::GetDataSource 關鍵字與 IDBInitialize::Initialize 關鍵字,則會使用 IDataInitialize::GetDataSource 的關鍵字設定。 建議應用程式不要在連接字串中使用IDBInitialize::InitializeIDataInitialize:GetDataSource關鍵字,因為這種行為可能在未來版本中無法維持。

注意

通過 IDataInitialize::GetDataSource 的連接串會轉換成屬性並透過 IDBProperties::SetProperties來套用。 若組件服務在 IDBProperties::GetPropertyInfo 中發現屬性描述,該屬性將作為獨立屬性應用。 否則,將透過 DBPROP_PROVIDERSTRING 屬性來應用。 例如,如果你指定連接字串 Data Source=server1;Server=server2, Data Source 將被設定為屬性,但 Server 會進入提供者字串。

如果您指定同一提供者特定屬性的多個執行個體,則會使用第一個屬性的第一個值。

使用 IDBInitialize::Initialize

OLE DB 應用程式使用 DBPROP_INIT_PROVIDERSTRING 與 IDBInitialize::Initialize 的連接字串的語法如下:

  • connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
  • empty-string ::=
  • attribute ::= attribute-keyword=[{]attribute-value[}]
  • attribute-value ::= character-string
  • attribute-keyword ::= identifier

可以選擇用大括弧括住屬性值,這樣是很好的作法。 此做法可在屬性值包含非英數字元時避免問題發生。 值中的第一個右大括弧應該會結束該值,所以值不能包含右大括弧字元。

連接字串關鍵字的 = 符號後方若有空格字元,該空格會被視為字面值,即使該值以引號括住也是如此。

下表描述可用於 DBPROP_INIT_PROVIDERSTRING的關鍵字。

關鍵字 初始化屬性 描述
Addr SSPROP_INIT_NETWORKADDRESS 的 Address同義詞。
Address SSPROP_INIT_NETWORKADDRESS 執行 SQL Server 執行個體的伺服器網路位址。 Address 通常是伺服器的網路名稱,但也可以是其他名稱,例如管線、IP 位址,或 TCP/IP 埠口與套接字位址。

若您指定 IP 位址,請確定在 SQL Server 組態管理員中已啟用 TCP/IP 或具名管道通訊協定。

使用 OLE DB 驅動程式 for SQL Server 時,的 Address 值優先於連接字串中傳遞的 Server 值。 Address=; 連接關鍵字指定的 Server 伺服器,而 Address= ;, Address=.;、 Address=localhost;、 Address=(local); 及 all 則會連接至本地伺服器。

關鍵字 Address 的完整語法如下:

[協議:]地址[,port|\pipe\pipename]

protocol 可以是 tcp (TCP/IP)、lpc (共用記憶體) 或 np (具名管道)。 欲了解更多協定資訊,請參閱 「配置用戶端協定」。

若未指定 協定 或關鍵字, Network OLE DB 驅動程式將依照 SQL Server 組態管理員中指定的協定順序。

port 是在指定伺服器上所要連接的通訊埠。 預設情況下,SQL Server 使用 port 1433.
APP SSPROP_INIT_APPNAME 識別應用程式的字串。
ApplicationIntent SSPROP_INIT_APPLICATIONINTENT 宣告連接到伺服器時的應用程式工作負載類型。 可能的值是 ReadOnly 和 ReadWrite。

預設值為 ReadWrite。 如需 OLE DB Driver for SQL Server 對於 Always On 可用性群組的支援相關詳細資訊,請參閱 OLE DB Driver for SQL Server 高可用性和災害復原支援。
AttachDBFileName SSPROP_INIT_FILENAME 可附加資料庫的主要檔案名稱,包括完整路徑名稱。 使用 AttachDBFileName 時,您還必須同時指定資料庫名稱及在提供者字串中使用 Database 關鍵字。 如果之前已附加資料庫,則 SQL Server 不會重新附加該資料庫 (此產品會使用附加的資料庫作為連線的預設)。
Authentication 1 SSPROP_AUTH_MODE 指定所使用的 SQL 或 Microsoft Entra 驗證。 有效值為:
  • (not set):由其他關鍵字決定的驗證模式。
  • ActiveDirectoryIntegrated:與 Microsoft Entra ID 整合認證。

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

  • ActiveDirectoryInteractive:Microsoft Entra 身份的互動式驗證。 此方法也支援 Microsoft Entra 多重要素驗證。
  • ActiveDirectoryMSI: 管理身份 驗證。 對於使用者指派的身份,將使用者 ID 設為該使用者身份的物件 ID。
  • ActiveDirectoryServicePrincipal:與 Microsoft Entra 服務主體進行認證。 將使用者 ID 設定為應用程式(用戶端)ID。 將密碼設為應用程式(用戶端)密碼。
  • ActiveDirectoryPassword: [已棄用] 使用 Microsoft Entra 身份的使用者 ID 與密碼驗證已被棄用。 欲了解更多資訊,請參閱 Microsoft Entra 使用者名稱與密碼驗證。
  • SqlPassword:透過使用者ID和密碼進行認證。

  • 注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值Authentication,以SqlPassword啟用新的加密與憑證驗證行為。
Auto Translate SSPROP_INIT_AUTOTRANSLATE 的 AutoTranslate同義詞。
AutoTranslate SSPROP_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 yes 和 no。
ConnectRetryCount SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0 到 255。 預設值是 1。 值為 0 則不會嘗試重新連線。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。
ConnectRetryInterval SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 1 到 60。 預設值是 10。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。
Database DBPROP_INIT_CATALOG 資料庫名稱。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定要使用的資料類型處理模式。 提供者資料類型和 SQL Server 2000 (8.x) 資料類型的可辨識值分別為 0 和 80。
Encrypt 1 SSPROP_INIT_ENCRYPT 指定當透過網路傳送資料以前,是否應該先加密資料。 可能的值是 Optional、Mandatory、Strict。 預設值是 Mandatory。 關於版本 18.x.x 及主要版本間的值相容性,請參見 MSOLEDBSQL 主要版本差異。
FailoverPartner SSPROP_INIT_FAILOVERPARTNER 用於資料庫鏡像的容錯移轉伺服器名稱。
FailoverPartnerSPN SSPROP_INIT_FAILOVERPARTNERSPN 容錯移轉夥伴的 SPN。 預設值為空字串。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
HostNameInCertificate SSPROP_INIT_HOST_NAME_CERTIFICATE 用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果 HostNameInCertificate 關鍵字未設定,驅動程式會使用 Server 連線 URL 上的關鍵字值作為主機名稱來驗證 SQL Server 的 TLS/SSL 憑證。
注意:若伺服器憑證被信任,此特性將被忽略。 若 Encrypt 設為 Strict,憑證將永遠被驗證。
Language SSPROP_INIT_CURRENTLANGUAGE SQL Server 語言。
MarsConn SSPROP_INIT_MARSCONNECTION 當伺服器為 SQL Server 2005 (9.x) 或更新版本時,啟用或停用連接上的 Multiple Active Result Sets (MARS)。 可能的值是 yes 和 no。 預設值是 no。
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER MultiSubnetFailover=Yes當目標為 Azure SQL Database、Azure SQL 受控執行個體、Microsoft Fabric 中的 SQL 資料庫、SQL Server 可用性群組的可用性群組監聽器,或 SQL Server 故障轉移叢集實例時,設定為 驅動程式嘗試並行連接所有已解析的 IP 位址,並使用第一個成功的連線。 可能的值是 Yes 和 No。 預設值為 No。 對單一 IP 目標安全:當 DNS 解析到一個位址時,驅動程式會嘗試一次連線。

如需 OLE DB Driver for SQL Server 對於 Always On 可用性群組的支援相關詳細資訊,請參閱 OLE DB Driver for SQL Server 高可用性和災害復原支援。
Net SSPROP_INIT_NETWORKLIBRARY 的 Network同義詞。
Network SSPROP_INIT_NETWORKLIBRARY 用來建立組織中 SQL Server 執行個體連線的網路程式庫。
Network Library SSPROP_INIT_NETWORKLIBRARY 的 Network同義詞。
PacketSize SSPROP_INIT_PACKETSIZE 表格式資料流 (TDS) 封包大小。 預設值是 0 (實際值由伺服器決定)。
PersistSensitive DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受以 yes 和 no 作為值的字串。 使用 no 時,不允許使用資料來源物件來保存敏感性驗證資訊
PWD DBPROP_AUTH_PASSWORD SQL Server 登入密碼。
Server DBPROP_INIT_DATASOURCE SQL Server 執行個體的名稱。 此值必須是網路上的伺服器名稱、IP 位址,或是 SQL Server 組態管理員別名的名稱。

如果沒有指定,就會連接至本機電腦上的預設執行個體。

Address 關鍵字會覆蓋 Server 關鍵字。

您可指定下列其中一個選項,連線到本機伺服器上的預設執行個體:

Server=;
Server=.;
Server=(local);
Server=(local);
Server=(localhost);
Server=(localdb)\<instancename>;

如需有關 LocalDB 支援的詳細資訊,請參閱 OLE DB Driver for SQL Server 的 LocalDB 支援。

若要指定一個命名的 SQL Server 實例,請附加 \<InstanceName>。

當你不指定伺服器時,會連接到本地電腦的預設實例。

如果你指定 IP 位址,請確保 SQL Server 組態管理員 啟用了 TCP/IP 或命名管線協定。

關鍵字 Server 的完整語法如下:

[協議:]伺服器[,port]

protocol 可以是 tcp (TCP/IP)、lpc (共用記憶體) 或 np (具名管道)。

下列範例會指定具名管道:

np:\\.\pipe\MSSQL$MYINST01\sql\query

前一行指定了命名管線協定()、np本地機器上的命名管線(\\.\pipe)、SQL Server實例的名稱(MSSQL$MYINST01)、以及命名管線的預設名稱(sql/query)。

如果你沒有指定協定或Network關鍵字,OLE DB Driver for SQL Server 會依照 SQL Server 組態管理員 中指定的協定順序。

port 是在指定伺服器上所要連接的通訊埠。 預設情況下,SQL Server 使用 port 1433.

使用 OLE DB 驅動程式 for SQL Server 時,連接字串中傳遞 Server 的值開頭的空格會被忽略。
ServerCertificate SSPROP_INIT_SERVER_CERTIFICATE 指定要與 SQL Server TLS/SSL 憑證相符的憑證檔案所在的路徑。 只有在啟用 Strict 加密時,才能使用此選項。 接受的憑證格式為 PEM、DER 和 CER。 如有指定,則會藉由確認 SQL Server 憑證是否與所提供的憑證完全相符來進行檢查。
ServerSPN SSPROP_INIT_SERVERSPN 伺服器的 SPN。 預設值為空字串。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
Timeout DBPROP_INIT_TIMEOUT 等待資料來源初始化完成所需的秒數。 預設為 15 秒。 對於已啟用自動暫停的 Azure SQL Database serverless,請使用至少 60 秒。 自動暫停的資料庫會在第一次連線嘗試時恢復,而該嘗試可能會因錯誤 40613 而失敗,而資料庫則會恢復,因此應用程式必須重新嘗試。 欲了解更多資訊,請參閱 自動暫停與自動繼續。
TransparentNetworkIPResolution SSPROP_INIT_TNIR 控制 OLE DB Driver for SQL Server 的舊版多 IP 容錯移轉機制。 此設定不影響 當 MultiSubnetFailover=Yes時的連線順序,這是 Azure SQL Database、Azure SQL 受控執行個體、Microsoft Fabric 中的 SQL 資料庫、可用性群組監聽器及故障轉移叢集實例的建議設定。 可能的值是 Yes 和 No。 預設值是 Yes。 如需詳細資訊,請參閱使用透明網路 IP 解析。
Trusted_Connection DBPROP_AUTH_INTEGRATED 當為 yes 時,此選項會指示 OLE DB Driver for SQL Server 使用 Windows 驗證進行登入驗證。 否則,OLE DB Driver for SQL Server 將會使用 SQL Server 使用者名稱和密碼進行登入驗證,且必須指定 UID 和 PWD 關鍵字。
TrustServerCertificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受以 yes 和 no 作為值的字串。 預設為 no,這表示將會驗證伺服器憑證。
UID DBPROP_AUTH_USERID SQL Server 登入名稱。
UseFMTONLY SSPROP_INIT_USEFMTONLY 控制連線到 SQL Server 2012 (11.x) 及更新版本時,擷取中繼資料的方式。 可能的值是 yes 和 no。 預設值是 no。

依預設,OLE DB Driver for SQL Server 會使用 sp_describe_first_result_set 和 sp_describe_undeclared_parameters 預存程序來擷取中繼資料。 這些預存程序有一些限制 (例如,在暫存資料表上操作時,這些預存程序會失敗)。 設定 UseFMTONLY 為 yes 則指示驅動程式改用 SET FMTONLY 來擷取元資料。
UseProcForPrepare SSPROP_INIT_USEPROCFORPREP 這個關鍵字已被取代,而且 OLE DB Driver for SQL Server 會忽略其設定。
WSID SSPROP_INIT_WSID 工作站識別碼。

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

使用 IDataInitialize::GetDataSource

OLE DB 應用程式 IDataInitialize::GetDataSource 所使用的連接字串語法如下:

  • connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
  • empty-string ::=
  • attribute ::= attribute-keyword=[quote]attribute-value[quote]
  • attribute-value ::= character-string
  • attribute-keyword ::= identifier
  • quote ::= " | '

屬性的使用必須符合其範圍內所允許的語法。 例如,WSID 使用大括號({})引號字元,Application Name 使用單引號' 或雙引號" 字元。 只有字串屬性可以加上引號。 嘗試以引號括住整數或列舉屬性將會導致出現 Connection String doesn't conform to OLE DB specification 錯誤。

您可以選擇用單引號或雙引號括住屬性值,這樣是很好的做法。 此做法在值包含非英數字元時,可避免問題發生。 所使用的引號字元也可出現在值當中,但必須是雙引號字元。

連接字串關鍵字中,= 符號後面的空格字元會被視為常值,即使該值以引號括住也是如此。

如果連接字串具有下表所列的多個屬性,將會使用最後一個屬性的值。

下表描述了可能與 IDataInitialize::GetDataSource 一同使用的關鍵字:

關鍵字 初始化屬性 描述
Access Token 1 SSPROP_AUTH_ACCESS_TOKEN 用來向 Microsoft Entra ID 進行驗證的存取權杖。

注意:同時指定此關鍵字及 UID、PWD、Trusted_Connection、或 Authentication 連接字串關鍵字或其對應的屬性/關鍵字,是錯誤的。
Application Name SSPROP_INIT_APPNAME 識別應用程式的字串。
Application Intent SSPROP_INIT_APPLICATIONINTENT 宣告連接到伺服器時的應用程式工作負載類型。 可能的值是 ReadOnly 和 ReadWrite。

預設值為 ReadWrite。 如需 OLE DB Driver for SQL Server 對於 Always On 可用性群組的支援相關詳細資訊,請參閱 OLE DB Driver for SQL Server 高可用性和災害復原支援。
Authentication 1 SSPROP_AUTH_MODE 指定所使用的 SQL 或 Microsoft Entra 驗證。 有效值為:
  • (not set):由其他關鍵字決定的驗證模式。
  • ActiveDirectoryIntegrated:與 Microsoft Entra ID 整合認證。

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

  • ActiveDirectoryInteractive:Microsoft Entra 身份的互動式驗證。 此方法也支援 Microsoft Entra 多重要素驗證。
  • ActiveDirectoryMSI: 管理身份 驗證。 對於使用者指派的身份,將使用者 ID 設為該使用者身份的物件 ID。
  • ActiveDirectoryServicePrincipal:與 Microsoft Entra 服務主體進行認證。 將使用者 ID 設定為應用程式(用戶端)ID。 將密碼設為應用程式(用戶端)密碼。
  • ActiveDirectoryPassword: [已棄用] 使用 Microsoft Entra 身份的使用者 ID 與密碼驗證已被棄用。 將使用者主體遷移至多重驗證(ActiveDirectoryInteractive)。 欲了解更多資訊,請參閱 Microsoft Entra 使用者名稱與密碼驗證。
  • SqlPassword:使用使用者ID和密碼進行認證。

  • 注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為。
Auto Translate SSPROP_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 true 和 false。
Connect Timeout DBPROP_INIT_TIMEOUT 等待資料來源初始化完成所需的秒數。 預設為 15 秒。 對於已啟用自動暫停的 Azure SQL Database serverless,請使用至少 60 秒。 自動暫停的資料庫會在第一次連線嘗試時恢復,而該嘗試可能會因錯誤 40613 而失敗,而資料庫則會恢復,因此應用程式必須重新嘗試。 欲了解更多資訊,請參閱 自動暫停與自動繼續。
Connect Retry Count SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0 到 255。 預設值是 1。 值為 0 則不會嘗試重新連線。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。
Connect Retry Interval SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 1 到 60。 預設值是 10。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。
Current Language SSPROPT_INIT_CURRENTLANGUAGE SQL Server 語言名稱。
Data Source DBPROP_INIT_DATASOURCE 組織中 SQL Server 執行個體的名稱。

如果沒有指定,就會連接至本機電腦上的預設執行個體。

欲了解更多關於有效地址語法的資訊,請參閱本文中關鍵字的說明 Server 。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定要使用的資料類型處理模式。 提供者資料類型和 SQL Server 2000 (8.x) 資料類型的可辨識值分別為 0 和 80。
Failover Partner SSPROP_INIT_FAILOVERPARTNER 用於資料庫鏡像的容錯移轉伺服器名稱。
Failover Partner SPN SSPROP_INIT_FAILOVERPARTNERSPN 容錯移轉夥伴的 SPN。 預設值為空字串。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
Host Name In Certificate SSPROP_INIT_HOST_NAME_CERTIFICATE 用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果 Host Name In Certificate 關鍵字未設定,驅動程式會使用 Data Source 連線 URL 上的關鍵字值作為主機名稱來驗證 SQL Server 的 TLS/SSL 憑證。
注意:若伺服器憑證被信任,此特性將被忽略。 若 Use Encryption for Data 設為 Strict,憑證將永遠被驗證。
Initial Catalog DBPROP_INIT_CATALOG 資料庫名稱。
Initial File Name SSPROP_INIT_FILENAME 可附加資料庫的主要檔案名稱,包括完整路徑名稱。 使用 AttachDBFileName,你也必須搭配提供者字串關鍵字 DATABASE 來指定資料庫名稱。 如果之前已附加資料庫,則 SQL Server 不會重新附加該資料庫 (此產品會使用附加的資料庫作為連線的預設)。
Integrated Security DBPROP_AUTH_INTEGRATED 接受 SSPI 值進行 Windows 驗證。
MARS Connection SSPROP_INIT_MARSCONNECTION 啟用或停用此連線的多重作用中結果集 (MARS)。 可辨識的值為 true 和 false。 預設值為 false。
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER MultiSubnetFailover=True當目標為 Azure SQL Database、Azure SQL 受控執行個體、Microsoft Fabric 中的 SQL 資料庫、SQL Server 可用性群組的可用性群組監聽器,或 SQL Server 故障轉移叢集實例時,設定為 驅動程式嘗試並行連接所有已解析的 IP 位址,並使用第一個成功的連線。 可能的值是 True 和 False。 預設值為 False。 對單一 IP 目標安全:當 DNS 解析到一個位址時,驅動程式會嘗試一次連線。

如需 OLE DB Driver for SQL Server 對於 Always On 可用性群組的支援相關詳細資訊,請參閱 OLE DB Driver for SQL Server 高可用性和災害復原支援。
Network Address SSPROP_INIT_NETWORKADDRESS 組織中 SQL Server 執行個體的網路位址。

欲了解更多關於有效地址語法的資訊,請參閱本文中關鍵字的說明 Address 。
Network Library SSPROP_INIT_NETWORKLIBRARY 用來建立組織中 SQL Server 執行個體連線的網路程式庫。
Packet Size SSPROP_INIT_PACKETSIZE 表格式資料流 (TDS) 封包大小。 預設值是 0 (實際值由伺服器決定)。
Password DBPROP_AUTH_PASSWORD SQL Server 登入密碼。
Persist Security Info DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受以 true 和 false 作為值的字串。 當為 false 時,不允許使用資料來源物件來保存敏感性驗證資訊
Provider 針對 OLE DB Driver for SQL Server,此值為 MSOLEDBSQL19 或 MSOLEDBSQL。
Server Certificate SSPROP_INIT_SERVER_CERTIFICATE 指定要與 SQL Server TLS/SSL 憑證相符的憑證檔案所在的路徑。 只有在啟用 Strict 加密時,才能使用此選項。 接受的憑證格式為 PEM、DER 和 CER。 如有指定,則會藉由確認 SQL Server 憑證是否與所提供的憑證完全相符來進行檢查。
Server SPN SSPROP_INIT_SERVERSPN 伺服器的 SPN。 預設值為空字串。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
TransparentNetworkIPResolution SSPROP_INIT_TNIR 控制 OLE DB Driver for SQL Server 的舊版多 IP 容錯移轉機制。 此設定不影響 當 MultiSubnetFailover=True時的連線順序,這是 Azure SQL Database、Azure SQL 受控執行個體、Microsoft Fabric 中的 SQL 資料庫、可用性群組監聽器及故障轉移叢集實例的建議設定。 可能的值是 True 和 False。 預設值是 True。 如需詳細資訊,請參閱使用透明網路 IP 解析。
Trust Server Certificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受以 true 和 false 作為值的字串。 預設為 false,這表示將會驗證伺服器憑證。
Use Encryption for Data 1 SSPROP_INIT_ENCRYPT 指定當透過網路傳送資料以前,是否應該先加密資料。 可能的值是 Optional、Mandatory、Strict。 預設值是 Mandatory。 屬性類型和可接受的值會因驅動程式世代而異:在 MSOLEDBSQL 上,此屬性為 VT_BOOL,且僅接受 true 和 false,因此傳入 Strict 或 0x80040E73 會因 yes 而失敗。 若為 18.x.x 版,請參閱 MSOLEDBSQL 主要版本差異。
Use FMTONLY SSPROP_INIT_USEFMTONLY 控制連線到 SQL Server 2012 (11.x) 及更新版本時,擷取中繼資料的方式。 可能的值是 true 和 false。 預設值是 false。

依預設,OLE DB Driver for SQL Server 會使用 sp_describe_first_result_set 和 sp_describe_undeclared_parameters 預存程序來擷取中繼資料。 這些預存程序有一些限制 (例如,在暫存資料表上操作時,這些預存程序會失敗)。 設定 Use FMTONLY 為 true 則指示驅動程式改用 SET FMTONLY 來擷取元資料。
User ID DBPROP_AUTH_USERID SQL Server 登入名稱。
Workstation ID SSPROP_INIT_WSID 工作站識別碼。

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

注意

在連接字串中, Old Password 屬性設定 SSPROP_AUTH_OLD_PASSWORD,其為目前(可能已過期)的密碼,該密碼無法透過提供者字串屬性取得。

ActiveX 資料物件(ADO)連接字串關鍵字

ADO 應用程式會設定ConnectionString物件的ADODBConnection屬性,或者提供連接字串作為Open物件的ADODBConnection方法參數。

ADO 應用程式也可以使用 OLE DB IDBInitialize::Initialize 方法所用的關鍵字,但僅限於沒有預設值的屬性。 若應用程式同時使用 ADO 關鍵字與 IDBInitialize::Initialize 初始化字串中的關鍵字,則使用 ADO 關鍵字設定。 建議應用程式只使用 ADO 連接字串 關鍵字。

ADO 使用的連接字串具有以下語法:

  • connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
  • empty-string ::=
  • attribute ::= attribute-keyword=["]attribute-value["]
  • attribute-value ::= character-string
  • attribute-keyword ::= identifier

可以選擇用雙引號括住屬性值,這樣是很好的做法。 此做法在值包含非英數字元時,可避免問題發生。 屬性值不能包含雙引號。

下表描述可能用於 ADO 連接字串的關鍵字:

關鍵字 初始化屬性 描述
Access Token 1 SSPROP_AUTH_ACCESS_TOKEN 用來向 Microsoft Entra ID 進行驗證的存取權杖。

注意:同時指定此關鍵字及 UID、PWD、Trusted_Connection、或 Authentication 連接字串關鍵字或其對應的屬性/關鍵字,是錯誤的。
Application Intent SSPROP_INIT_APPLICATIONINTENT 宣告連接到伺服器時的應用程式工作負載類型。 可能的值是 ReadOnly 和 ReadWrite。

預設值為 ReadWrite。 如需 OLE DB Driver for SQL Server 對於 Always On 可用性群組的支援相關詳細資訊,請參閱 OLE DB Driver for SQL Server 高可用性和災害復原支援。
Application Name SSPROP_INIT_APPNAME 識別應用程式的字串。
Authentication 1 SSPROP_AUTH_MODE 指定所使用的 SQL 或 Microsoft Entra 驗證。 有效值為:
  • (not set):由其他關鍵字決定的驗證模式。
  • ActiveDirectoryIntegrated:與 Microsoft Entra ID 整合認證。

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

  • ActiveDirectoryInteractive:Microsoft Entra 身份的互動式驗證。 此方法也支援 Microsoft Entra 多重要素驗證。
  • ActiveDirectoryMSI: 管理身份 驗證。 對於使用者指派的身份,將使用者 ID 設為該使用者身份的物件 ID。
  • ActiveDirectoryServicePrincipal:與 Microsoft Entra 服務主體進行認證。 將使用者 ID 設定為應用程式(用戶端)ID。 將密碼設為應用程式(用戶端)祕密。
  • ActiveDirectoryPassword: [已棄用] 使用 Microsoft Entra 身份的使用者 ID 與密碼驗證已被棄用。 將使用者主體遷移至多重驗證(ActiveDirectoryInteractive)。 欲了解更多資訊,請參閱 Microsoft Entra 使用者名稱與密碼驗證。
  • SqlPassword:使用使用者ID和密碼進行認證。

  • 注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為。
Auto Translate SSPROP_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 true 和 false。
Connect Timeout DBPROP_INIT_TIMEOUT 等待資料來源初始化完成所需的秒數。 預設為 15 秒。 對於已啟用自動暫停的 Azure SQL Database serverless,請使用至少 60 秒。 自動暫停的資料庫會在第一次連線嘗試時恢復,而該嘗試可能會因錯誤 40613 而失敗,而資料庫則會恢復,因此應用程式必須重新嘗試。 欲了解更多資訊,請參閱 自動暫停與自動繼續。
Connect Retry Count SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0 到 255。 預設值是 1。 值為 0 則不會嘗試重新連線。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。
Connect Retry Interval SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 1 到 60。 預設值是 10。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性。
Current Language SSPROPT_INIT_CURRENTLANGUAGE SQL Server 語言名稱。
Data Source DBPROP_INIT_DATASOURCE 組織中 SQL Server 執行個體的名稱。

如果沒有指定,就會連接至本機電腦上的預設執行個體。

欲了解更多關於有效地址語法的資訊,請參閱本文中關鍵字的說明 Server 。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定即將使用之資料類型處理的模式。 提供者資料類型和 SQL Server 2000 (8.x) 資料類型的可辨識值分別為 0 和 80。
Failover Partner SSPROP_INIT_FAILOVERPARTNER 用於資料庫鏡像的容錯移轉伺服器名稱。
Failover Partner SPN SSPROP_INIT_FAILOVERPARTNERSPN 容錯移轉夥伴的 SPN。 預設值為空字串。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
Host Name In Certificate SSPROP_INIT_HOST_NAME_CERTIFICATE 用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果 Host Name In Certificate 關鍵字未設定,驅動程式會使用 Data Source 連線 URL 上的關鍵字值作為主機名稱來驗證 SQL Server 的 TLS/SSL 憑證。
注意:若伺服器憑證被信任,此特性將被忽略。 若 Use Encryption for Data 設為 Strict,憑證將永遠被驗證。
Initial Catalog DBPROP_INIT_CATALOG 資料庫名稱。
Initial File Name SSPROP_INIT_FILENAME 可附加資料庫的主要檔案名稱,包括完整路徑名稱。 使用 AttachDBFileName,你也必須搭配提供者字串關鍵字 DATABASE 來指定資料庫名稱。 如果之前已附加資料庫,則 SQL Server 不會重新附加該資料庫 (此產品會使用附加的資料庫作為連線的預設)。
Integrated Security DBPROP_AUTH_INTEGRATED 接受 SSPI 值進行 Windows 驗證。
MARS Connection SSPROP_INIT_MARSCONNECTION 當伺服器為 SQL Server 2005 (9.x) 或更新版本時,啟用或停用連接上的 Multiple Active Result Sets (MARS)。 可辨識的值為 true 和 false。 預設值為 false。
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER MultiSubnetFailover=True當目標為 Azure SQL Database、Azure SQL 受控執行個體、Microsoft Fabric 中的 SQL 資料庫、SQL Server 可用性群組的可用性群組監聽器,或 SQL Server 故障轉移叢集實例時,設定為 驅動程式嘗試並行連接所有已解析的 IP 位址,並使用第一個成功的連線。 可能的值是 True 和 False。 預設值為 False。 對單一 IP 目標安全:當 DNS 解析到一個位址時,驅動程式會嘗試一次連線。

如需 OLE DB Driver for SQL Server 對於 Always On 可用性群組的支援相關詳細資訊,請參閱 OLE DB Driver for SQL Server 高可用性和災害復原支援。
Network Address SSPROP_INIT_NETWORKADDRESS 組織中 SQL Server 執行個體的網路位址。

欲了解更多關於有效地址語法的資訊,請參閱本文中關鍵字的說明 Address 。
Network Library SSPROP_INIT_NETWORKLIBRARY 用來建立組織中 SQL Server 執行個體連線的網路程式庫。
Packet Size SSPROP_INIT_PACKETSIZE 表格式資料流 (TDS) 封包大小。 預設值是 0 (實際值由伺服器決定)。
Password DBPROP_AUTH_PASSWORD SQL Server 登入密碼。
Persist Security Info DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受以 true 和 false 作為值的字串。 當為 false 時,不允許使用資料來源物件來保存敏感性驗證資訊。
Provider 針對 OLE DB Driver for SQL Server,此值為 MSOLEDBSQL19 或 MSOLEDBSQL。
Server Certificate SSPROP_INIT_SERVER_CERTIFICATE 指定要與 SQL Server TLS/SSL 憑證相符的憑證檔案所在的路徑。 只有在啟用 Strict 加密時,才能使用此選項。 接受的憑證格式為 PEM、DER 和 CER。 如有指定,則會藉由確認 SQL Server 憑證是否與所提供的憑證完全相符來進行檢查。
Server SPN SSPROP_INIT_SERVERSPN 伺服器的 SPN。 預設值為空字串。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
TransparentNetworkIPResolution SSPROP_INIT_TNIR 控制 OLE DB Driver for SQL Server 的舊版多 IP 容錯移轉機制。 此設定不影響 當 MultiSubnetFailover=True時的連線順序,這是 Azure SQL Database、Azure SQL 受控執行個體、Microsoft Fabric 中的 SQL 資料庫、可用性群組監聽器及故障轉移叢集實例的建議設定。 可能的值是 True 和 False。 預設值是 True。 如需詳細資訊,請參閱使用透明網路 IP 解析。
Trust Server Certificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受以 true 和 false 作為值的字串。 預設為 false,這表示將會驗證伺服器憑證。
Use Encryption for Data 1 SSPROP_INIT_ENCRYPT 指定當透過網路傳送資料以前,是否應該先加密資料。 可能的值是 Optional、Mandatory、Strict。 預設值是 Mandatory。 屬性類型和可接受的值會因驅動程式世代而異:在 MSOLEDBSQL 上,此屬性為 VT_BOOL,且僅接受 true 和 false,因此傳入 Strict 或 0x80040E73 時會因 yes 而失敗。 若為 18.x.x 版,請參閱 MSOLEDBSQL 主要版本差異。
Use FMTONLY SSPROP_INIT_USEFMTONLY 控制連線到 SQL Server 2012 (11.x) 及更新版本時,擷取中繼資料的方式。 可能的值是 true 和 false。 預設值是 false。

依預設,OLE DB Driver for SQL Server 會使用 sp_describe_first_result_set 和 sp_describe_undeclared_parameters 預存程序來擷取中繼資料。 這些預存程序有一些限制 (例如,在暫存資料表上操作時,這些預存程序會失敗)。 設定 Use FMTONLY 為 true 則指示驅動程式改用 SET FMTONLY 來擷取元資料。
User ID DBPROP_AUTH_USERID SQL Server 登入名稱。
Workstation ID SSPROP_INIT_WSID 工作站識別碼。

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

注意

在連接字串中,「舊密碼」屬性設定 SSPROP_AUTH_OLD_PASSWORD了 ,這是目前(可能已過期)且無法透過提供者字串屬性取得的密碼。