接続文字列の構文Connection String Syntax

すべての .NET Framework データ プロバイダーは、Connection を継承する DbConnection オブジェクトに加え、プロバイダー固有の ConnectionString プロパティを持ちます。Each .NET Framework data provider has a Connection object that inherits from DbConnection as well as a provider-specific ConnectionString property. それぞれのプロバイダーに固有の接続文字列の構文は、対応する ConnectionString プロパティのトピックで説明されています。The specific connection string syntax for each provider is documented in its ConnectionString property. 次の表は、.NET Framework に含まれている 4 つのデータ プロバイダーを一覧にしたものです。The following table lists the four data providers that are included in the .NET Framework.

.NET Framework データ プロバイダー.NET Framework data provider 説明Description
System.Data.SqlClient Microsoft SQL Server へのデータ アクセスを提供します。Provides data access for Microsoft SQL Server. 接続文字列の構文の詳細については、「ConnectionString」を参照してください。For more information on connection string syntax, see ConnectionString.
System.Data.OleDb OLE DB を使って公開されたデータ ソースへのデータ アクセスを提供します。Provides data access for data sources exposed using OLE DB. 接続文字列の構文の詳細については、「ConnectionString」を参照してください。For more information on connection string syntax, see ConnectionString.
System.Data.Odbc ODBC を使って公開されたデータ ソースへのデータ アクセスを提供します。Provides data access for data sources exposed using ODBC. 接続文字列の構文の詳細については、「ConnectionString」を参照してください。For more information on connection string syntax, see ConnectionString.
System.Data.OracleClient Oracle バージョン 8.1.7 以降へのデータ アクセスを提供します。Provides data access for Oracle version 8.1.7 or later. 接続文字列の構文の詳細については、「ConnectionString」を参照してください。For more information on connection string syntax, see ConnectionString.

接続文字列ビルダーConnection String Builders

ADO.NET 2.0 では、.NET Framework データ プロバイダー用の次の接続文字列ビルダーが導入されました。ADO.NET 2.0 introduced the following connection string builders for the .NET Framework data providers.

接続文字列ビルダーを使用すると、構文的に正しい接続文字列を実行時に構築できるため、コード内で接続文字列値を手動で連結する必要はありません。The connection string builders allow you to construct syntactically valid connection strings at run time, so you do not have to manually concatenate connection string values in your code. 詳細については、「接続文字列ビルダー」をご覧ください。For more information, see Connection String Builders.

Windows 認証Windows Authentication

データ ソースが Windows 認証 (統合セキュリティ とも呼ばれることもあります) をサポートしている場合、Windows 認証 を使用することを推奨します。We recommend using Windows Authentication (sometimes referred to as integrated security) to connect to data sources that support it. 接続文字列の構文は、プロバイダーによって異なります。The syntax employed in the connection string varies by provider. .NET Framework データ プロバイダーで使用されている Windows 認証の構文を次の表に示します。The following table shows the Windows Authentication syntax used with the .NET Framework data providers.

プロバイダーProvider 構文Syntax
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;
OleDb Integrated Security=SSPI;
Odbc Trusted_Connection=yes;
OracleClient Integrated Security=yes;

注意

Integrated Security=true プロバイダーで OleDb に設定すると例外がスローされます。Integrated Security=true throws an exception when used with the OleDb provider.

SqlClient 接続文字列SqlClient Connection Strings

SqlConnection 接続文字列の構文については、SqlConnection.ConnectionString プロパティで説明されています。The syntax for a SqlConnection connection string is documented in the SqlConnection.ConnectionString property. ConnectionString プロパティを使用すると、SQL Server データベースの接続文字列を取得または設定することができます。You can use the ConnectionString property to get or set a connection string for a SQL Server database. 以前のバージョンの SQL Server に接続する必要がある場合は、.NET Framework Data Provider for OleDb (System.Data.OleDb) を使用する必要があります。If you need to connect to an earlier version of SQL Server, you must use the .NET Framework Data Provider for OleDb (System.Data.OleDb). 接続文字列のほとんどのキーワードは、SqlConnectionStringBuilder のプロパティにマップされています。Most connection string keywords also map to properties in the SqlConnectionStringBuilder.

重要

既定の設定、Persist Security Infoキーワードはfalseします。The default setting for the Persist Security Info keyword is false. このキーワードを true または yes に設定すると、ユーザー ID やパスワードなどのセキュリティ関連情報を、接続を開いた後にその接続から取得できます。Setting it to true or yes allows security-sensitive information, including the user ID and password, to be obtained from the connection after the connection has been opened. 保持Persist Security Info設定false信頼できないソースにアクセスを要する接続文字列情報がないことを確認します。Keep Persist Security Info set to false to ensure that an untrusted source does not have access to sensitive connection string information.

SqlClient を使用して Windows 認証Windows authentication with SqlClient

次の構文の各形式は、Windows 認証を使用してローカル サーバー上の AdventureWorks データベースへ接続します。Each of the following forms of syntax uses Windows Authentication to connect to the AdventureWorks database on a local server.

"Persist Security Info=False;Integrated Security=true;  
    Initial Catalog=AdventureWorks;Server=MSSQL1"  
"Persist Security Info=False;Integrated Security=SSPI;  
    database=AdventureWorks;server=(local)"  
"Persist Security Info=False;Trusted_Connection=True;  
    database=AdventureWorks;server=(local)"  

SqlClient での SQL Server 認証SQL Server authentication with SqlClient

SQL Server への接続には Windows 認証の使用をお勧めします。Windows Authentication is preferred for connecting to SQL Server. ただし、どうしても SQL Server 認証を使用する必要がある場合は、次の構文に従ってユーザー名とパスワードを指定してください。However, if SQL Server Authentication is required, use the following syntax to specify a user name and password. この例では、アスタリスクを使用して有効なユーザー名とパスワードを表しています。In this example, asterisks are used to represent a valid user name and password.

"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"  

Azure SQL Data Warehouse または Azure SQL Database に接続し、形式のログインを提供するときにuser@servername、ことを確認します、 servername 、ログインに一致する指定された値はServer=します。When you connect to Azure SQL Database or to Azure SQL Data Warehouse and provide a login in the format user@servername, make sure that the servername value in the login matches the value provided for Server=.

注意

Windows 認証は SQL Server ログインよりも優先されます。Windows authentication takes precedence over SQL Server logins. Integrated Security を true に指定し、ユーザー名とパスワードも指定した場合、ユーザー名とパスワードは無視され、Windows 認証が使用されます。If you specify both Integrated Security=true as well as a user name and password, the user name and password will be ignored and Windows authentication will be used.

SQL Server の名前付きインスタンスに接続します。Connect to a named instance of SQL Server

SQL Server の名前付きインスタンスに接続するには、使用、 server name \instance name構文。To connect to a named instance of SQL Server, use the server name\instance name syntax.

Data Source=MySqlServer\MSSQL1;"  

接続文字列の作成時に、DataSourceSqlConnectionStringBuilder プロパティをインスタンス名に設定することもできます。You can also set the DataSource property of the SqlConnectionStringBuilder to the instance name when building a connection string. DataSource オブジェクトの SqlConnection プロパティは読み取り専用です。The DataSource property of a SqlConnection object is read-only.

Type System Version の変更Type System Version Changes

Type System Versionキーワード、 SqlConnection.ConnectionString SQL サーバーの種類のクライアント側表現を指定します。The Type System Version keyword in a SqlConnection.ConnectionString specifies the client-side representation of SQL Server types. SqlConnection.ConnectionString キーワードの詳細については、Type System Version のトピックを参照してください。See SqlConnection.ConnectionString for more information about the Type System Version keyword.

SQL Server Express ユーザー インスタンスへの接続とアタッチConnecting and Attaching to SQL Server Express User Instances

ユーザー インスタンスは、SQL Server Express の機能の 1 つです。User instances are a feature in SQL Server Express. 最小限の特権しか持たないローカル Windows アカウントで実行しているユーザーが、SQL Server データベースにアタッチできます。この場合、管理特権は不要です。They allow a user running on a least-privileged local Windows account to attach and run a SQL Server database without requiring administrative privileges. ユーザー インスタンスは、サービスとしてではなく、ユーザーの Windows 資格情報で実行されます。A user instance executes with the user's Windows credentials, not as a service.

ユーザー インスタンスの操作方法の詳細については、次を参照してください。 SQL Server Express ユーザー インスタンスします。For more information on working with user instances, see SQL Server Express User Instances.

TrustServerCertificate の使用Using TrustServerCertificate

TrustServerCertificateキーワードは、有効な証明書の SQL Server インスタンスに接続する場合にのみ有効です。The TrustServerCertificate keyword is valid only when connecting to a SQL Server instance with a valid certificate. TrustServerCertificatetrue に設定した場合、トランスポート層に SSL が使用されてチャネルが暗号化されます。また、証明書チェーンをたどることによる信頼性の検証は省略されます。When TrustServerCertificate is set to true, the transport layer will use SSL to encrypt the channel and bypass walking the certificate chain to validate trust.

"TrustServerCertificate=true;"   

注意

TrustServerCertificatetrue に設定して暗号化を有効にした場合、接続文字列で Encryptfalse に設定したとしても、サーバーで指定された暗号化レベルが使用されます。If TrustServerCertificate is set to true and encryption is turned on, the encryption level specified on the server will be used even if Encrypt is set to false in the connection string. それ以外の場合、接続は失敗します。The connection will fail otherwise.

暗号化の有効化Enabling Encryption

サーバーで、証明書がプロビジョニングされていない場合は、暗号化を有効にする、 Force Protocol EncryptionTrust Server Certificateオプションは、SQL Server 構成マネージャーで設定する必要があります。To enable encryption when a certificate has not been provisioned on the server, the Force Protocol Encryption and the Trust Server Certificate options must be set in SQL Server Configuration Manager. このように、検証可能なサーバー証明書がプロビジョニングされていない場合、暗号化には検証を伴わない自己署名入りのサーバー証明書が使用されます。In this case, encryption will use a self-signed server certificate without validation if no verifiable certificate has been provisioned on the server.

SQL Server で構成されたセキュリティのレベルを、アプリケーションの設定によって緩和することはできません。ただし、必要に応じて厳密にすることはできます。Application settings cannot reduce the level of security configured in SQL Server, but can optionally strengthen it. アプリケーションは、暗号化を要求を設定して、TrustServerCertificateEncryptキーワードをtrue、暗号化は配置サーバーの証明書がプロビジョニングされていない場合でものことを保証してプロトコルの暗号化クライアントが構成されていません。An application can request encryption by setting the TrustServerCertificate and Encrypt keywords to true, guaranteeing that encryption takes place even when a server certificate has not been provisioned and Force Protocol Encryption has not been configured for the client. ただし、クライアントの構成で TrustServerCertificate を有効にしなかった場合は、プロビジョニングされたサーバー証明書が必要です。However, if TrustServerCertificate is not enabled in the client configuration, a provisioned server certificate is still required.

次の表ですべてのケースを説明します。The following table describes all cases.

[プロトコルの暗号化を設定する] クライアント設定Force Protocol Encryption client setting [サーバー証明書を信頼する] クライアント設定Trust Server Certificate client setting Encrypt/Use Encryption for Data 接続文字列/属性Encrypt/Use Encryption for Data connection string/attribute Trust Server Certificate 接続文字列/属性Trust Server Certificate connection string/attribute 結果Result
No N/AN/A 無効 (既定値)No (default) 無視Ignored 暗号化は行われません。No encryption occurs.
No N/AN/A はいYes 無効 (既定値)No (default) 暗号化は、検証可能なサーバー証明書が提供されている場合にのみ行われます。それ以外の場合は、接続試行が失敗します。Encryption occurs only if there is a verifiable server certificate, otherwise the connection attempt fails.
No N/AN/A はいYes [はい]Yes 暗号化は常に行われますが、自己署名入りのサーバー証明書を使用することがあります。Encryption always occurs, but may use a self-signed server certificate.
[はい]Yes No 無視Ignored 無視Ignored 暗号化は、検証可能なサーバー証明書がある場合にのみに発生します。それ以外の場合、接続の試行は失敗します。Encryption occurs only if there is a verifiable server certificate; otherwise, the connection attempt fails.
[はい]Yes はいYes 無効 (既定値)No (default) 無視Ignored 暗号化は常に行われますが、自己署名入りのサーバー証明書を使用することがあります。Encryption always occurs, but may use a self-signed server certificate.
[はい]Yes はいYes はいYes 無効 (既定値)No (default) 暗号化は、検証可能なサーバー証明書がある場合にのみに発生します。それ以外の場合、接続の試行は失敗します。Encryption occurs only if there is a verifiable server certificate; otherwise, the connection attempt fails.
[はい]Yes はいYes はいYes [はい]Yes 暗号化は常に行われますが、自己署名入りのサーバー証明書を使用することがあります。Encryption always occurs, but may use a self-signed server certificate.

詳細については、「検証を伴わない暗号化の使用」を参照してください。For more information, see Using Encryption Without Validation.

OleDb 接続文字列OleDb Connection Strings

ConnectionStringOleDbConnection プロパティを使用すると、Microsoft Access などの OLE DB データ ソースの接続文字列を取得または設定することができます。The ConnectionString property of a OleDbConnection allows you to get or set a connection string for an OLE DB data source, such as Microsoft Access. OleDb クラスを使用して、実行時に OleDbConnectionStringBuilder 接続文字列を作成することもできます。You can also create an OleDb connection string at run time by using the OleDbConnectionStringBuilder class.

OleDb 接続文字列の構文OleDb Connection String Syntax

OleDbConnection 接続文字列では、プロバイダー名を指定する必要があります。You must specify a provider name for an OleDbConnection connection string. 次の接続文字列は、Jet プロバイダーを使用して Microsoft Access データベースに接続します。The following connection string connects to a Microsoft Access database using the Jet provider. User ID および Password キーワードは、データベースがセキュリティ保護されていない場合は省略できます (既定)。Note that the User ID and Password keywords are optional if the database is unsecured (the default).

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;   

ユーザー レベルのセキュリティを使用して Jet データベースがセキュリティ保護されている場合は、ワークグループ情報ファイル (.mdw) の場所を指定する必要があります。If the Jet database is secured using user-level security, you must provide the location of the workgroup information file (.mdw). ワークグループ情報ファイルを使用して接続文字列に表示された資格情報を検証します。The workgroup information file is used to validate the credentials presented in the connection string.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;  

重要

接続情報を提供することは、 OleDbConnection Universal Data Link (UDL) ファイルです。 ただししないでそうです。It is possible to supply connection information for an OleDbConnection in a Universal Data Link (UDL) file; however you should avoid doing so. UDL ファイルは暗号化されないため、接続文字列をテキスト形式で表現してしまいます。UDL files are not encrypted, and expose connection string information in clear text. UDL ファイルは、アプリケーションにとって外部ファイルをベースにしたリソースであるため、.NET Framework でセキュリティ保護できません。Because a UDL file is an external file-based resource to your application, it cannot be secured using the .NET Framework. UDL ファイルはサポートされていませんSqlClientします。UDL files are not supported for SqlClient.

DataDirectory を使用した Access/Jet との接続Using DataDirectory to Connect to Access/Jet

DataDirectory の使用は SqlClient に限定されません。DataDirectory is not exclusive to SqlClient. System.Data.OleDb および System.Data.Odbc .NET データ プロバイダーでも使用できます。It can also be used with the System.Data.OleDb and System.Data.Odbc .NET data providers. アプリケーションの app_data フォルダーに格納された Northwind.mdb に接続するための OleDbConnection 文字列の構文を次の例に示します。The following sample OleDbConnection string demonstrates the syntax required to connect to the Northwind.mdb located in the application's app_data folder. この場所には、システム データベース (System.mdw) も格納されています。The system database (System.mdw) is also stored in that location.

"Provider=Microsoft.Jet.OLEDB.4.0;  
Data Source=|DataDirectory|\Northwind.mdb;  
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"  

重要

Access/Jet データベースをセキュリティで保護しない場合は、接続文字列にシステム データベースの場所を指定する必要はありません。Specifying the location of the system database in the connection string is not required if the Access/Jet database is unsecured. 既定では、セキュリティが無効になります。すべてのユーザーが、空のパスワードで組み込みの Admin ユーザーとして接続することになります。Security is off by default, with all users connecting as the built-in Admin user with a blank password. ユーザー レベルのセキュリティを正しく実装したとしても、Jet データベースは攻撃に対して無防備です。Even when user-level security is correctly implemented, a Jet database remains vulnerable to attack. ファイル ベースのセキュリティでは克服できない限界があるため、Access/Jet データベースに機密情報を格納することはお勧めできません。Therefore, storing sensitive information in an Access/Jet database is not recommended because of the inherent weakness of its file-based security scheme.

Excel への接続Connecting to Excel

Excel ワークブックへの接続には、Microsoft Jet プロバイダーが使用されます。The Microsoft Jet provider is used to connect to an Excel workbook. 次の接続文字列では、Extended Properties キーワードは Excel に固有のプロパティを設定しています。In the following connection string, the Extended Properties keyword sets properties that are specific to Excel. 「HDR=Yes;」は最初の列にデータではなく行の名前が含まれていることを示し、「IMEX=1;」は "intermixed" データ行を常にテキストとして読み取ることをドライバーに指示しています。"HDR=Yes;" indicates that the first row contains column names, not data, and "IMEX=1;" tells the driver to always read "intermixed" data columns as text.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""  

Extended Properties を二重引用符で囲む必要があることに注意してください。Note that the double quotation character required for the Extended Properties must also be enclosed in double quotation marks.

Data Shape プロバイダーの接続文字列の構文Data Shape Provider Connection String Syntax

Microsoft Data Shape プロバイダーを使用するときは、Provider および Data Provider キーワードを両方使用してください。Use both the Provider and the Data Provider keywords when using the Microsoft Data Shape provider. Shape プロバイダーを使用して SQL Server のローカル インスタンスに接続する例を次に示します。The following example uses the Shape provider to connect to a local instance of SQL Server.

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"   

Odbc 接続文字列Odbc Connection Strings

ConnectionStringOdbcConnection プロパティを使用すると、OLE DB データベースで接続文字列を取得または設定することができます。The ConnectionString property of a OdbcConnection allows you to get or set a connection string for an OLE DB data source. OdbcConnectionStringBuilder は、Odbc の接続文字列もサポートしています。Odbc connection strings are also supported by the OdbcConnectionStringBuilder.

次の接続文字列では、Microsoft Text Driver を使用しています。The following connection string uses the Microsoft Text Driver.

Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin  

DataDirectory を使用した Visual FoxPro との接続Using DataDirectory to Connect to Visual FoxPro

次の OdbcConnection 接続文字列は、DataDirectory を使用して Microsoft Visual FoxPro ファイルに接続する例を示しています。The following OdbcConnection connection string sample demonstrates using DataDirectory to connect to a Microsoft Visual FoxPro file.

"Driver={Microsoft Visual FoxPro Driver};  
SourceDB=|DataDirectory|\MyData.DBC;SourceType=DBC;"  

Oracle 接続文字列Oracle Connection Strings

ConnectionStringOracleConnection プロパティを使用すると、OLE DB データベースで接続文字列を取得または設定することができます。The ConnectionString property of a OracleConnection allows you to get or set a connection string for an OLE DB data source. OracleConnectionStringBuilder は、Oracle の接続文字列もサポートしています。Oracle connection strings are also supported by the OracleConnectionStringBuilder .

Data Source=Oracle9i;User ID=*****;Password=*****;  

ODBC 接続文字列の構文の詳細については、「ConnectionString」を参照してください。For more information on ODBC connection string syntax, see ConnectionString.

関連項目See also