利用 OLE DB Driver for SQL Server 使用連接字串關鍵字

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

下載 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

在第一個案例中,提供者字串可用來初始化連接屬性,其方式是在 DBPROPSET_DBINIT 屬性集中設定 DBPROP_INIT_PROVIDERSTRING 屬性。 在第二個案例中,初始化字串可以傳遞給 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 關鍵字設定。 建議您不要讓應用程式在 IDataInitialize:GetDataSource 連接字串中使用 IDBInitialize::Initialize 關鍵字,因為未來的版本可能無法維護這個行為。

注意

透過 IDataInitialize::GetDataSource 傳遞的連接字串會經由 IDBProperties::SetProperties 轉換成屬性並加以套用。 如果元件服務在 IDBProperties::GetPropertyInfo 中找到屬性描述,此屬性將會作為獨立屬性來套用。 否則,它將會透過 DBPROP_PROVIDERSTRING 屬性來套用。 例如,若您指定連接字串 Data Source=server1;Server=server2,則 Data Source 會設定為屬性,但是 Server 將會進入提供者字串。

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

使用 IDBInitialize::Initialize

OLE DB 應用程式使用的連接字串如果搭配 IDBInitialize::Initialize 使用 DBPROP_INIT_PROVIDERSTRING,其語法如下:

  • 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 的同義字。
位址 SSPROP_INIT_NETWORKADDRESS 執行 SQL Server 執行個體的伺服器網路位址。 Address 通常是伺服器的網路名稱,不過也可能是其他名稱,例如管道、IP 位址,或 TCP/IP 通訊埠和通訊端位址。

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

使用 OLE DB Driver for SQL Server 時,Address 的值會優先於連接字串中傳遞給 Server 的值。 同時請注意,Address=; 將會連接到 Server 關鍵字中指定的伺服器,而 Address= ;, Address=.;Address=localhost;Address=(local); 都會造成與本機伺服器的連接。

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

[protocol:]Address[,port |\pipe\pipename]

protocol 可以是 tcp (TCP/IP)、 lpc (共用記憶體) 或 np (具名管道)。 如需有關通訊協定的詳細資訊,請參閱設定用戶端通訊協定

如果未指定 protocol 也未指定 Network 關鍵字,OLE DB Driver for SQL Server 將會使用 SQL Server 組態管理員中指定的通訊協定順序。

port 是在指定伺服器上所要連接的通訊埠。 根據預設,SQL Server 會使用連接埠 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 不會重新附加該資料庫 (此產品會使用附加的資料庫作為連線的預設)。
Authentication1 SSPROP_AUTH_MODE 指定所使用的 SQL 或 Microsoft Entra 驗證。 有效值為:
  • (not set):由其他關鍵字決定的驗證模式。
  • ActiveDirectoryPassword: 使用 Microsoft Entra 身分識別進行使用者識別碼和密碼驗證。
  • ActiveDirectoryIntegrated: 使用 Microsoft Entra ID 進行整合式驗證

  • 注意: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_INIT_AUTOTRANSLATE AutoTranslate 的同義字。
AutoTranslate SSPROP_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 yesno
ConnectRetryCount SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0255。 預設值是 1。 值為 0 會造成不嘗試重新連線。 如需詳細資訊,請參閱閒置連線復原
ConnectRetryInterval SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 160。 預設值是 10。 如需詳細資訊,請參閱閒置連線復原
Database DBPROP_INIT_CATALOG 資料庫名稱。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定要使用的資料類型處理模式。 提供者資料類型和 SQL Server 2000 資料類型的可辨識值分別為 080
加密t1 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 關鍵字,驅動程式就會使用連線 URL 上的 Server 關鍵字值做為主機名稱,以驗證 SQL Server TLS/SSL 憑證。
注意:如果伺服器憑證受信任,則會忽略這個屬性。 如果 Encrypt 設定為 Strict,則一律會驗證憑證。
語言 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 會設定 OLE DB Driver for SQL Server ,以提供對 (目前) 使用中伺服器更快速的偵測與連接。 可能的值是 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 關鍵字。

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

伺服器=;

伺服器=.;

伺服器=(local);

伺服器=(local);

伺服器=(localhost);

Server=(localdb)\instancename;

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

若要指定 SQL Server 的具名執行個體,請附加 \InstanceName

如果未指定伺服器,就會連接到本機電腦上的預設執行個體。

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

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

伺服器= [通訊協定: ]伺服器[ ,連接埠]

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

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

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

上述程式碼行指定具名管道通訊協定 (np)、本機電腦上的具名管道 (\\.\pipe)、SQL Server 執行個體的名稱 (MSSQL$MYINST01),以及具名管道的預設名稱 (sql/query)。

如果未指定 protocol 也未指定 Network 關鍵字,則 OLE DB Driver for SQL Server 將會使用 SQL Server 組態管理員中指定的通訊協定順序。

port 是在指定伺服器上所要連接的通訊埠。 根據預設,SQL Server 會使用連接埠 1433。

使用 OLE DB Driver for SQL 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。
逾時 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 關鍵字。
TrustServerCertificate1 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 設定為 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 使用的關鍵字:

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

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

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

  • 注意: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_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 truefalse
連接逾時 DBPROP_INIT_TIMEOUT 等候資料來源初始化完成的時間量 (以秒為單位)。
連線重試計數 SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0255。 預設值是 1。 值為 0 會造成不嘗試重新連線。 如需詳細資訊,請參閱閒置連線復原
連線重試間隔 SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 160。 預設值是 10。 如需詳細資訊,請參閱閒置連線復原
Current Language SSPROPT_INIT_CURRENTLANGUAGE SQL Server 語言名稱。
資料來源 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。
憑證中的主機名稱 SSPROP_INIT_HOST_NAME_CERTIFICATE 用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果未設定 Host Name In Certificate 關鍵字,驅動程式就會使用連線 URL 上的 Data Source 關鍵字值做為主機名稱,以驗證 SQL Server TLS/SSL 憑證。
注意:如果伺服器憑證受信任,則會忽略這個屬性。 如果 [對資料使用加密] 設定為 Strict,則一律會驗證憑證。
初始目錄 DBPROP_INIT_CATALOG 資料庫名稱。
初始檔案名稱 SSPROP_INIT_FILENAME 可附加資料庫的主要檔案名稱,包括完整路徑名稱。 若要使用 AttachDBFileName,您還必須使用提供者字串 DATABASE 關鍵字來指定資料庫名稱。 如果之前已附加資料庫,則 SQL Server 不會重新附加該資料庫 (此產品會使用附加的資料庫作為連線的預設)。
整合式安全性 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 Driver for 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 執行個體連線的網路程式庫。
封包大小 SSPROP_INIT_PACKETSIZE 表格式資料流 (TDS) 封包大小。 預設值為 0 (實際值將由伺服器決定)。
密碼 DBPROP_AUTH_PASSWORD SQL Server 登入密碼。
保存安全性資訊 DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受以 truefalse 作為值的字串。 當為 false 時,不允許使用資料來源物件來保存敏感性驗證資訊
提供者 對於 OLE DB Driver for SQL Server,這個值應該是 "MSOLEDBSQL19" 或 "MSOLEDBSQL"。
伺服器憑證 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 解析
信任伺服器憑證1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受以 truefalse 作為值的字串。 預設為 false,這表示將會驗證伺服器憑證。
為資料使用加密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 設定為 true,會指示驅動程式改為使用 SET FMTONLY 進行中繼資料擷取。
使用者識別碼 DBPROP_AUTH_USERID SQL Server 登入名稱。
Workstation ID SSPROP_INIT_WSID 工作站識別碼。

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

注意

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

ActiveX Data Objects (ADO) 連接字串關鍵字

ADO 應用程式會設定 ADODBConnection 物件的 ConnectionString 屬性,或是提供連接字串當做 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 連接字串使用的關鍵字:

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

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

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

  • 注意: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_INIT_AUTOTRANSLATE 設定 OEM/ANSI 字元轉譯。 可辨識的值為 truefalse
連接逾時 DBPROP_INIT_TIMEOUT 等候資料來源初始化完成的時間量 (以秒為單位)。
連線重試計數 SSPROP_INIT_CONNECT_RETRY_COUNT 控制連線遺失的情況下,重新連線嘗試次數。 有效值的範圍為 0255。 預設值是 1。 值為 0 會造成不嘗試重新連線。 如需詳細資訊,請參閱閒置連線復原
連線重試間隔 SSPROP_INIT_CONNECT_RETRY_INTERVAL 若連線遺失,會指定每個連接重試嘗試的間隔秒數。 有效值的範圍為 160。 預設值是 10。 如需詳細資訊,請參閱閒置連線復原
Current Language SSPROPT_INIT_CURRENTLANGUAGE SQL Server 語言名稱。
資料來源 DBPROP_INIT_DATASOURCE 組織中 SQL Server 執行個體的名稱。

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

如需有關有效位址語法的詳細資訊,請參閱本文中對於 Server 關鍵字的說明。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 指定即將使用之資料類型處理的模式。 提供者資料類型和 SQL Server 2000 資料類型的可辨識值分別為 080
Failover Partner SSPROP_INIT_FAILOVERPARTNER 用於資料庫鏡像的容錯移轉伺服器名稱。
Failover Partner SPN SSPROP_INIT_FAILOVERPARTNERSPN 容錯移轉夥伴的 SPN。 預設值為空字串。 空字串會讓 OLE DB Driver for SQL Server 使用提供者產生的預設 SPN。
憑證中的主機名稱 SSPROP_INIT_HOST_NAME_CERTIFICATE 用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果未設定 Host Name In Certificate 關鍵字,驅動程式就會使用連線 URL 上的 Data Source 關鍵字值做為主機名稱,以驗證 SQL Server TLS/SSL 憑證。
注意:如果伺服器憑證受信任,則會忽略這個屬性。 如果 [對資料使用加密] 設定為 Strict,則一律會驗證憑證。
初始目錄 DBPROP_INIT_CATALOG 資料庫名稱。
初始檔案名稱 SSPROP_INIT_FILENAME 可附加資料庫的主要檔案名稱,包括完整路徑名稱。 若要使用 AttachDBFileName,您還必須使用提供者字串 DATABASE 關鍵字來指定資料庫名稱。 如果之前已附加資料庫,則 SQL Server 不會重新附加該資料庫 (此產品會使用附加的資料庫作為連線的預設)。
整合式安全性 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 Driver for 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 執行個體連線的網路程式庫。
封包大小 SSPROP_INIT_PACKETSIZE 表格式資料流 (TDS) 封包大小。 預設值為 0 (實際值將由伺服器決定)。
密碼 DBPROP_AUTH_PASSWORD SQL Server 登入密碼。
保存安全性資訊 DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 接受以 truefalse 作為值的字串。 當為 false 時,不允許使用資料來源物件來保存敏感性驗證資訊。
提供者 針對 OLE DB Driver for SQL Server,此值為 MSOLEDBSQL19MSOLEDBSQL
伺服器憑證 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 解析
信任伺服器憑證1 SSPROP_INIT_TRUST_SERVER_CERTIFICATE 接受以 truefalse 作為值的字串。 預設為 false,這表示將會驗證伺服器憑證。
為資料使用加密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 設定為 true,會指示驅動程式改為使用 SET FMTONLY 進行中繼資料擷取。
使用者識別碼 DBPROP_AUTH_USERID SQL Server 登入名稱。
Workstation ID SSPROP_INIT_WSID 工作站識別碼。

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

注意

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

另請參閱

利用 OLE DB Driver for SQL Server 建置