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  ";
Keyword='special;character';

囲んでいる文字が、囲まれた値内に出現しない可能性があります。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:

Keyword='double"quotation;mark';
Keyword="single'quotation;mark";

また、2つの文字を一緒に使用して、囲み文字をエスケープすることもできます。You can also escape the enclosing character by using two of them together:

Keyword="double""quotation";
Keyword='single''quotation';

引用符自体と等号だけでは、エスケープは必要ないため、次の接続文字列が有効です。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';
Keyword=a=b=c

各値は、次のセミコロンまたは文字列の末尾まで読み取られるため、後者の例の値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. 認識されるキーワードのセットはプロバイダーによって異なり、 ODBCなどの以前の api から長年にわたって進化しています。The set of recognized keywords depends on the provider, however, and has evolved over the years from earlier APIs such as ODBC. .NET Framework data provider for 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