分享方式:


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

適用於:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 資料庫

下載 OLE DB 驅動程式

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

注意

SQL Server 的 OLE DB 驅動程式允許連線字串的歧義,以維持向下相容性(例如,某些關鍵字可以指定多次,且可能允許基於位置或優先順序解決衝突的關鍵字)。 未來的 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中的值來設定的布林屬性會使用yesno來設定。 初始化字串中的布林屬性是使用IDataInitialize::GetDataSource設定,並以值truefalse進行設定。

應用程式 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=server2Data Source 將被設定為屬性,但 Server 會進入提供者字串。

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

使用 IDBInitialize::Initialize

OLE DB 應用程式使用 DBPROP_INIT_PROVIDERSTRINGIDBInitialize::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 宣告連接到伺服器時的應用程式工作負載類型。 可能的值是 ReadOnlyReadWrite

預設值為 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):由其他關鍵字決定的驗證模式。
  • ActiveDirectoryPassword: 使用 Microsoft Entra 身份進行使用者 ID 與密碼驗證。
  • ActiveDirectoryIntegrated:與 Microsoft Entra ID 整合認證。

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

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

  • 注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為
Auto Translate SSPROP_INIT_AUTOTRANSLATE AutoTranslate同義詞。
AutoTranslate SSPROP_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 yesno
ConnectRetryCount SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0255。 預設值是 1。 值為 0 則不會嘗試重新連線。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性
ConnectRetryInterval SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 160。 預設值是 10。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性
Database DBPROP_INIT_CATALOG 資料庫名稱。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定要使用的資料類型處理模式。 提供者資料類型和 SQL Server 2000 (8.x) 資料類型的可辨識值分別為 080
Encrypt 1 SSPROP_INIT_ENCRYPT 指定當透過網路傳送資料以前,是否應該先加密資料。 可能的值是 OptionalMandatoryStrict。 預設值是 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)。 可能的值是 yesno。 預設值是 no
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER 在連線至 SQL Server 的可用性群組接聽程式或 SQL Server 容錯移轉叢集執行個體時,務必指定 MultiSubnetFailover=YesMultiSubnetFailover=Yes 配置 SQL Server 的 OLE DB 驅動程式,以更快速地偵測與連接當前活躍的伺服器。 可能的值是 YesNo。 預設值為 No。 例如:

MultiSubnetFailover=Yes

如需 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 接受以 yesno 作為值的字串。 使用 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 關鍵字,SQL Server 的 OLE DB 驅動程式將依照 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 等候資料來源初始化完成的時間量 (以秒為單位)。
TransparentNetworkIPResolution SSPROP_INIT_TNIR 在第一個解析的主機名稱 IP 沒有回應,且該主機名稱有多個相關聯的 IP 時影響連線順序。 TNIR 會與 MultiSubnetFailover 互動,以提供不同的連線順序。 可能的值是 YesNo。 預設值是 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 接受以 yesno 作為值的字串。 預設為 no,這表示將會驗證伺服器憑證。
UID DBPROP_AUTH_USERID SQL Server 登入名稱。
UseFMTONLY SSPROP_INIT_USEFMTONLY 控制連線到 SQL Server 2012 (11.x) 及更新版本時,擷取中繼資料的方式。 可能的值是 yesno。 預設值是 no

根據預設,OLE DB Driver for SQL Server 會使用 sp_describe_first_result_setsp_describe_undeclared_parameters 預存程序擷取中繼資料。 這些預存程序有一些限制 (例如,在暫存資料表上操作時,這些預存程序會失敗)。 設定 UseFMTONLY to 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 進行驗證的存取權杖。

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

預設值為 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):由其他關鍵字決定的驗證模式。
  • ActiveDirectoryPassword: 使用 Microsoft Entra 身份進行使用者 ID 與密碼驗證。
  • ActiveDirectoryIntegrated:與 Microsoft Entra ID 整合認證。

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

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

  • 注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為
Auto Translate SSPROP_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 truefalse
Connect Timeout DBPROP_INIT_TIMEOUT 等候資料來源初始化完成的時間量 (以秒為單位)。
Connect Retry Count SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0255。 預設值是 1。 值為 0 則不會嘗試重新連線。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性
Connect Retry Interval SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 160。 預設值是 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) 資料類型的可辨識值分別為 080
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 啟用或停用連接上的 Multiple Active Result Sets (MARS)。 可辨識的值為 truefalse。 預設值為 false
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER 在連線至 SQL Server 的可用性群組接聽程式或 SQL Server 容錯移轉叢集執行個體時,務必指定 MultiSubnetFailover=TrueMultiSubnetFailover=True 將 OLE DB 驅動程式配置為適用於 SQL Server,以更快速地偵測和連接到(目前)活躍的伺服器。 可能的值是 TrueFalse。 預設值為 False。 例如:

MultiSubnetFailover=True

如需 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 接受以 truefalse 作為值的字串。 當為 false 時,不允許使用資料來源物件來保存敏感性驗證資訊
Provider 針對 OLE DB Driver for SQL Server,此值為 MSOLEDBSQL19MSOLEDBSQL
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 在第一個解析的主機名稱 IP 沒有回應,且該主機名稱有多個相關聯的 IP 時影響連線順序。 TNIR 會與 MultiSubnetFailover 互動,以提供不同的連線順序。 可能的值是 TrueFalse。 預設值是 True。 如需詳細資訊,請參閱使用透明網路 IP 解析
Trust Server Certificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受以 truefalse 作為值的字串。 預設為 false,這表示將會驗證伺服器憑證。
Use Encryption for Data 1 SSPROP_INIT_ENCRYPT 指定當透過網路傳送資料以前,是否應該先加密資料。 可能的值是 OptionalMandatoryStrict。 預設值是 Mandatory。 若為 18.x.x 版,請參閱 MSOLEDBSQL 主要版本差異
Use FMTONLY SSPROP_INIT_USEFMTONLY 控制連線到 SQL Server 2012 (11.x) 及更新版本時,擷取中繼資料的方式。 可能的值是 truefalse。 預設值是 false

根據預設,OLE DB Driver for SQL Server 會使用 sp_describe_first_result_setsp_describe_undeclared_parameters 預存程序擷取中繼資料。 這些預存程序有一些限制 (例如,在暫存資料表上操作時,這些預存程序會失敗)。 設定 Use FMTONLY to 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屬性,或者提供連接字串作為ADODBConnection物件的Open方法參數。

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以及 、 PWDTrusted_ConnectionAuthentication 連接字串關鍵字,或其對應的屬性/關鍵字,是錯誤的。
Application Intent SSPROP_INIT_APPLICATIONINTENT 宣告連接到伺服器時的應用程式工作負載類型。 可能的值是 ReadOnlyReadWrite

預設值為 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):由其他關鍵字決定的驗證模式。
  • ActiveDirectoryPassword: 使用 Microsoft Entra 身份進行使用者 ID 與密碼驗證。
  • ActiveDirectoryIntegrated:與 Microsoft Entra ID 整合認證。

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

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

  • 注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為
Auto Translate SSPROP_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 truefalse
Connect Timeout DBPROP_INIT_TIMEOUT 等候資料來源初始化完成的時間量 (以秒為單位)。
Connect Retry Count SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0255。 預設值是 1。 值為 0 則不會嘗試重新連線。 欲了解更多資訊,請參閱 OLE DB 驅動程式中的閒置連線韌性
Connect Retry Interval SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 160。 預設值是 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) 資料類型的可辨識值分別為 080
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)。 可辨識的值為 truefalse。 預設值為 false
MultiSubnetFailover SSPROP_INIT_MULTISUBNETFAILOVER 在連線至 SQL Server 的可用性群組接聽程式或 SQL Server 容錯移轉叢集執行個體時,務必指定 MultiSubnetFailover=TrueMultiSubnetFailover=True 配置 OLE DB 驅動程式用於 SQL Server,以提供更快偵測及連接至目前啟用的伺服器。 可能的值是 TrueFalse。 預設值為 False。 例如:

MultiSubnetFailover=True

如需 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 接受以 truefalse 作為值的字串。 當為 false 時,不允許使用資料來源物件來保存敏感性驗證資訊。
Provider 針對 OLE DB Driver for SQL Server,此值為 MSOLEDBSQL19MSOLEDBSQL
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 在第一個解析的主機名稱 IP 沒有回應,且該主機名稱有多個相關聯的 IP 時影響連線順序。 TNIR 會與 MultiSubnetFailover 互動,以提供不同的連線順序。 可能的值是 TrueFalse。 預設值是 True。 如需詳細資訊,請參閱使用透明網路 IP 解析
Trust Server Certificate 1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受以 truefalse 作為值的字串。 預設為 false,這表示將會驗證伺服器憑證。
Use Encryption for Data 1 SSPROP_INIT_ENCRYPT 指定當透過網路傳送資料以前,是否應該先加密資料。 可能的值是 OptionalMandatoryStrict。 預設值是 Mandatory。 若為 18.x.x 版,請參閱 MSOLEDBSQL 主要版本差異
Use FMTONLY SSPROP_INIT_USEFMTONLY 控制連線到 SQL Server 2012 (11.x) 及更新版本時,擷取中繼資料的方式。 可能的值是 truefalse。 預設值是 false

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

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

注意

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