適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 資料庫
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::InitializeIDataInitialize::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-stringempty-string ::=attribute ::= attribute-keyword=[{]attribute-value[}]attribute-value ::= character-stringattribute-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 驗證。 有效值為:
注意:此 ActiveDirectoryIntegrated 關鍵字也可用於 Windows 對 SQL Server 的驗證。 該關鍵字會取代 Integrated Security (或 Trusted_Connection) 驗證關鍵字。 使用 Integrated Security (或 Trusted_Connection)關鍵字或其對應屬性的應用程式,應設定關鍵字(或其對應屬性)的 Authentication 值,以 ActiveDirectoryIntegrated 啟用新的加密與憑證驗證行為。注意:使用 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 |
在連線至 SQL Server 的可用性群組接聽程式或 SQL Server 容錯移轉叢集執行個體時,務必指定 MultiSubnetFailover=Yes。
MultiSubnetFailover=Yes 配置 SQL Server 的 OLE DB 驅動程式,以更快速地偵測與連接當前活躍的伺服器。 可能的值是 Yes 和 No。 預設值為 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 |
接受以 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 關鍵字,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 互動,以提供不同的連線順序。 可能的值是 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 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-stringempty-string ::=attribute ::= attribute-keyword=[quote]attribute-value[quote]attribute-value ::= character-stringattribute-keyword ::= identifierquote ::= " | '
屬性的使用必須符合其範圍內所允許的語法。 例如,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 驗證。 有效值為:
注意:此 ActiveDirectoryIntegrated 關鍵字也可用於 Windows 對 SQL Server 的驗證。 該關鍵字會取代 Integrated Security (或 Trusted_Connection) 驗證關鍵字。 使用 Integrated Security (或 Trusted_Connection)關鍵字或其對應屬性的應用程式,應設定關鍵字(或其對應屬性)的 Authentication 值,以 ActiveDirectoryIntegrated 啟用新的加密與憑證驗證行為。注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為。 |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
設定 OEM/ANSI 字元轉譯。 可辨識的值為 true 和 false。 |
Connect Timeout |
DBPROP_INIT_TIMEOUT |
等候資料來源初始化完成的時間量 (以秒為單位)。 |
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 |
啟用或停用連接上的 Multiple Active Result Sets (MARS)。 可辨識的值為 true 和 false。 預設值為 false。 |
MultiSubnetFailover |
SSPROP_INIT_MULTISUBNETFAILOVER |
在連線至 SQL Server 的可用性群組接聽程式或 SQL Server 容錯移轉叢集執行個體時,務必指定 MultiSubnetFailover=True。
MultiSubnetFailover=True 將 OLE DB 驅動程式配置為適用於 SQL Server,以更快速地偵測和連接到(目前)活躍的伺服器。 可能的值是 True 和 False。 預設值為 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 |
接受以 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 |
在第一個解析的主機名稱 IP 沒有回應,且該主機名稱有多個相關聯的 IP 時影響連線順序。 TNIR 會與 MultiSubnetFailover 互動,以提供不同的連線順序。 可能的值是 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。 若為 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 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-stringempty-string ::=attribute ::= attribute-keyword=["]attribute-value["]attribute-value ::= character-stringattribute-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 驗證。 有效值為:
注意:此 ActiveDirectoryIntegrated 關鍵字也可用於 Windows 對 SQL Server 的驗證。 該關鍵字會取代 Integrated Security (或 Trusted_Connection) 驗證關鍵字。 使用 Integrated Security (或 Trusted_Connection)關鍵字或其對應屬性的應用程式,應設定關鍵字(或其對應屬性)的 Authentication 值,以 ActiveDirectoryIntegrated 啟用新的加密與憑證驗證行為。注意:使用 SQL Server 認證的應用程式應設定關鍵字(或其對應屬性)的值 Authentication ,以 SqlPassword 啟用 新的加密與憑證驗證行為。 |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
設定 OEM/ANSI 字元轉譯。 可辨識的值為 true 和 false。 |
Connect Timeout |
DBPROP_INIT_TIMEOUT |
等候資料來源初始化完成的時間量 (以秒為單位)。 |
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 |
在連線至 SQL Server 的可用性群組接聽程式或 SQL Server 容錯移轉叢集執行個體時,務必指定 MultiSubnetFailover=True。
MultiSubnetFailover=True 配置 OLE DB 驅動程式用於 SQL Server,以提供更快偵測及連接至目前啟用的伺服器。 可能的值是 True 和 False。 預設值為 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 |
接受以 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 |
在第一個解析的主機名稱 IP 沒有回應,且該主機名稱有多個相關聯的 IP 時影響連線順序。 TNIR 會與 MultiSubnetFailover 互動,以提供不同的連線順序。 可能的值是 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。 若為 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 to true 則指示驅動程式改用 SET FMTONLY 來擷取元資料。 |
User ID |
DBPROP_AUTH_USERID |
SQL Server 登入名稱。 |
Workstation ID |
SSPROP_INIT_WSID |
工作站識別碼。 |
1 為提升安全性,當使用認證/存取令牌初始化屬性或其對應的連接字串關鍵字時,會修改加密與憑證驗證行為。 如需詳細資訊,請參閱加密和憑證驗證。
注意
在連接字串中,「舊密碼」屬性設定 SSPROP_AUTH_OLD_PASSWORD了 ,這是目前(可能已過期)且無法透過提供者字串屬性取得的密碼。