ADO.NET での接続文字列Connection Strings in ADO.NET

接続文字列には、データ プロバイダーからデータ ソースにパラメーターとして渡す初期化情報が含まれています。A connection string contains initialization information that is passed as a parameter from a data provider to a data source. データ プロバイダーの値として、接続文字列を受け取る、DbConnection.ConnectionStringプロパティ。The data provider receives the connection string as the value of the DbConnection.ConnectionString property. プロバイダーは、接続文字列を解析し、により、構文が正しいことと、キーワードがサポートされていること。The provider parses the connection string and ensures that the syntax is correct and that the keywords are supported. 次に、DbConnection.Open()メソッドは、データ ソースに解析された接続パラメーターを渡します。Then the DbConnection.Open() method passes the parsed connection parameters to the data source. データ ソースは、さらに検証を実行し、接続を確立します。The data source performs further validation and establishes a connection.

接続文字列の構文Connection string syntax

接続文字列は、パラメーターのキー/値ペアのセミコロンで区切られた一覧を示します。A connection string is a semicolon-delimited list of key/value parameter pairs:

keyword1=value; keyword2=value;

キーワードは区別されません。Keywords are not case-sensitive. 値、ただし、可能性があります、データ ソースによって、大文字小文字が区別されます。Values, however, may be case-sensitive, depending on the data source. キーワードと値の両方を含めることができます空白文字します。Both keywords and values may contain whitespace characters. 先頭および末尾の空白文字がキーワードで無視され、引用符の値。Leading and trailing white space is ignored in keywords and unquoted values.

値には、セミコロンが含まれている場合Unicode コントロール文字、先頭または末尾の空白文字、単一引用符または二重引用符で囲む必要がありますか。If a value contains the semicolon, Unicode control characters, or leading or trailing white space, it must be enclosed in single or double quotation marks. 例:For example:

Keyword=" whitespace  ";

それを囲む文字を囲む値内で発生しません。The enclosing character may not occur within the value it encloses. そのため、単一引用符を含む値を囲む二重引用符でのみ、またはその逆ことができます。Therefore, a value containing single quotation marks can be enclosed only in double quotation marks, and vice versa:


、等号と同様に、引用符は不要、エスケープため、次の接続文字列が無効です。The quotation marks themselves, as well as the equals sign, do not require escaping, so the following connection strings are valid:

Keyword=no "escaping" 'required';

後者の例の値は、各値は、[次へ] のセミコロンまたは文字列の末尾まで読み取ることが、ためa=b=c、最後のセミコロンは省略可能です。Since each value is read till the next semicolon or the end of string, the value in the latter example is a=b=c, and the final semicolon is optional.

すべての接続文字列は、上記で説明した同じ基本的な構文を共有します。All connection strings share the same basic syntax described above. 認識されているキーワードのセットは、ただしは、プロバイダーに依存しなど、以前の Api から長年にわたって進化してきたODBCします。The set of recognized keywords depends on the provider, however, and has evolved over the years from earlier APIs such as ODBC. .NET Framework用データ プロバイダーのSQL Server (SqlClient) 従来の Api から多くのキーワードをサポートしていますが、一般より柔軟な一般的な接続文字列の多くのシノニムを受け入れる、キーワード。The .NET Framework data provider for SQL Server (SqlClient) supports many keywords from older APIs, but is generally more flexible and accepts synonyms for many of the common connection string keywords.

入力ミス エラーが発生することができます。Typing mistakes can cause errors. たとえば、Integrated Security=trueが有効ではIntegratedSecurity=trueエラーが発生します。For example, Integrated Security=true is valid, but IntegratedSecurity=true causes an error.

未検証のユーザー入力からの実行時に手動で構築された接続文字列は、文字列のインジェクション攻撃に対して脆弱なし、データ ソースでセキュリティを損ないます。Connection strings constructed manually at run time from unvalidated user input are vulnerable to string-injection attacks and jeopardize security at the data source. これらの問題に対処するADO.NET 2.0 で接続文字列ビルダー.NET Frameworkデータ プロバイダー。To address these problems, ADO.NET 2.0 introduced connection string builders for each .NET Framework data provider. これらの接続文字列ビルダーは、厳密に型指定されたプロパティとしてパラメーターを公開し、データ ソースに送信される前に、接続文字列を検証すること。These connection string builders expose parameters as strongly-typed properties, and make it possible to validate the connection string before it's sent to the data source.

このセクションの内容In This Section

接続文字列ビルダー\Connection String Builders\ ConnectionStringBuilder クラスを使用して、有効な接続文字列を実行時に作成する方法について説明します。Demonstrates how to use the ConnectionStringBuilder classes to construct valid connection strings at run time.

接続文字列と構成ファイル\Connection Strings and Configuration Files\ 構成ファイルを使用した接続文字列の格納と取得の方法について説明します。Demonstrates how to store and retrieve connection strings in configuration files.

接続文字列の構文\Connection String Syntax\ SqlClientOracleClientOleDbOdbc の各プロバイダーに固有の接続文字列を構成する方法について説明します。Describes how to configure provider-specific connection strings for SqlClient, OracleClient, OleDb, and Odbc.

接続情報の保護\Protecting Connection Information\ データ ソースへの接続に使用する情報を保護する方法を示します。Demonstrates techniques for protecting information used to connect to a data source.

関連項目See also