連接字串 (Connection String) 包含可當做參數從資料提供者 (Data Provider) 傳遞至資料來源的初始化資訊。 資料提供者會接收連接字串作為 DbConnection.ConnectionString 屬性的值。 此提供者會剖析連接字串,並確保語法正確且支援關鍵字。 然後,DbConnection.Open() 方法會將剖析的連線參數傳遞至資料來源。 資料來源會執行進一步驗證,並建立連線。
連接字串語法
連接字串是分號分隔的機碼/值參數組清單:
keyword1=value; keyword2=value;
關鍵字不區分大小寫。 不過,視資料來源而定,值可能區分大小寫。 關鍵字與值均可包含空白字元 \(英文\)。 關鍵字與不具引號的值均會忽略開頭與尾端空白字元。
如果值包含分號、Unicode 控制字元 \(英文\),或者開頭或尾端空白字元,則必須以單引號或雙引號括起來。 例如:
Keyword=" whitespace ";
Keyword='special;character';
含括字元可能不會出現在其括起來的值內。 因此,包含單引號的值只能用雙引號括起來,反之亦然:
Keyword='double"quotation;mark';
Keyword="single'quotation;mark";
您也可以透過一併使用這兩者來逸出含括字元:
Keyword="double""quotation";
Keyword='single''quotation';
引號本身與等號均不需逸出,因此下列連接字串是有效的:
Keyword=no "escaping" 'required';
Keyword=a=b=c
由於每個值都會讀取到下一個分號或字串結尾為止,因此後者範例的值是 a=b=c,最後一個分號為選擇性。
所有連接字串都會共用先前所述的相同基本語法。 不過,已辨識的關鍵字集取決於提供者,而且已從舊版 API (例如 ODBC) 演變而來。
SQL Server () 的 SqlClient 資料提供者支援許多來自較舊 API 的關鍵字,但通常更有彈性,而且可接受許多常用連接字串關鍵字的同義字。
輸入錯誤可能導致錯誤。 例如,Integrated Security=true 是有效的,但 IntegratedSecurity=true 會導致錯誤。
在執行期間手動組建且未經驗證的使用者輸入的連接字串,容易受到字串注入攻擊,從而威脅資料來源的安全。 為了解決這些問題,ADO.NET 2.0 已針對每個 .NET Framework 資料提供者引入連接字串建立器。 這些連接字串建立器會公開參數作為強型別屬性,而且能夠在將連接字串傳送至資料來源之前進行驗證。
重要
Microsoft建議您使用可用的最安全驗證流程。 如果您正在連接 Azure SQL,建議使用的驗證方法為 Azure 資源受控識別。
本節內容
連接字串產生器
示範如何利用類別 ConnectionStringBuilder 在執行時建構有效的連接字串。
連接字串與組態檔
示範如何在組態檔中儲存及擷取連接字串。
連接字串語法
說明如何針對SqlClient、OracleClient、OleDb 和 Odbc 設定提供者專用的連接字串。
保護連接資訊
示範的技術可保護用於連接至資料來源的資訊。
另請參閱
- 連線到資料來源
- ADO.NET 概觀 \(部分機器翻譯\)