接続 URL の構築Building the Connection URL

ダウンロードJDBC Driver のダウンロードDownloadDownload JDBC Driver

接続 URL の一般的な書式は次のとおりです。The general form of the connection URL is

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

それぞれの文字の説明は次のとおりです。where:

  • jdbc:sqlserver:// (必須) は、サブプロトコルであり定数です。jdbc:sqlserver:// (Required) is known as the subprotocol and is constant.

  • serverName (省略可能) は、接続先のサーバーのアドレスです。serverName (Optional) is the address of the server to connect to. 接続先のサーバーのアドレスには DNS または IP アドレスを指定するか、またはローカル コンピューターを表す localhost あるいは 127.0.0.1 を指定できます。This could be a DNS or IP address, or it could be localhost or 127.0.0.1 for the local computer. 接続 URL で指定されていない場合、プロパティのコレクションでサーバー名を指定する必要があります。If not specified in the connection URL, the server name must be specified in the properties collection.

  • instanceName (省略可能) は、serverName 上にある接続先のインスタンスです。instanceName (Optional) is the instance to connect to on serverName. 指定しない場合、既定のインスタンスへの接続が確立されます。If not specified, a connection to the default instance is made.

  • portNumber (省略可能) は、serverName 上にある接続先のポートです。portNumber (Optional) is the port to connect to on serverName. 既定では 1433 です。The default is 1433. 既定のポートを使用する場合は、URL でポートおよびその前の ':' を指定する必要はありません。If you're using the default, you don't have to specify the port, nor its preceding ':', in the URL.

    注意

    最適な接続パフォーマンスのために、名前付きインスタンスに接続するときは portNumber を設定します。For optimal connection performance, you should set the portNumber when you connect to a named instance. こうすることにより、ポート番号を決定するためのサーバーへのラウンド トリップが回避されます。This will avoid a round trip to the server to determine the port number. portNumber および instanceName の両方が使用されている場合、portNumber が優先され、instanceName は無視されます。If both a portNumber and instanceName are used, the portNumber will take precedence and the instanceName will be ignored.

  • property (省略可能) は、1 つ以上の接続プロパティ オプションです。property (Optional) is one or more option connection properties. 詳細については、「接続プロパティの設定」を参照してください。For more information, see Setting the connection properties. リストに含まれる任意のプロパティを指定できます。Any property from the list can be specified. プロパティを区切るには必ずセミコロン (';') を使用します。またプロパティを重複して指定することはできません。Properties can only be delimited by using the semicolon (';'), and they can't be duplicated.

注意事項

セキュリティ上の理由から、ユーザー入力に基づく接続 URL の作成は避ける必要があります。For security purposes, you should avoid building the connection URLs based on user input. URL では、サーバー名とドライバーだけを指定するようにします。You should only specify the server name and driver in the URL. ユーザー名とパスワードの値には、接続プロパティのコレクションを使用します。For user name and password values, use the connection property collections. JDBC アプリケーションのセキュリティの詳細については、「 jdbc driver アプリケーションのセキュリティ保護」を参照してください。For more information about security in your JDBC applications, see Securing JDBC driver applications.

接続の例Connection examples

ユーザー名とパスワードを使用して、ローカル コンピューター上の既定のデータベースに接続します。Connect to the default database on the local computer by using a user name and password:

jdbc:sqlserver://localhost;user=MyUserName;password=*****;

注意

前の例では接続文字列でユーザー名とパスワードを使用していますが、より安全な統合セキュリティを使用する必要があります。Although the previous example uses a username and password in the connection string, you should use integrated security as it is more secure. 詳細については、後の「Windows 上で統合認証を使用する接続」セクションを参照してください。For more information, see the Connecting with Integrated Authentication section later in this topic.

次の接続文字列は、Microsoft SQL Server 用 JDBC DriverMicrosoft JDBC Driver for SQL Server でサポートされている任意のオペレーティング システム上で実行中のアプリケーションから統合認証および Kerberos を使用して SQL ServerSQL Server データベースに接続する方法の例を示しています。The following connection string shows an example of how to connect to a SQL ServerSQL Server database using integrated authentication and Kerberos from an application running on any operating system supported by the Microsoft SQL Server 用 JDBC DriverMicrosoft JDBC Driver for SQL Server:

jdbc:sqlserver://;servername=server_name;integratedSecurity=true;authenticationScheme=JavaKerberos  

統合認証を使用して、ローカル コンピューター上の既定のデータベースに接続します。Connect to the default database on the local computer by using integrated authentication:

jdbc:sqlserver://localhost;integratedSecurity=true;

リモート サーバー上の名前付きデータベースに接続します。Connect to a named database on a remote server:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;

既定のポートでリモート サーバーに接続します。Connect on the default port to the remote server:

jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true;

カスタマイズされたアプリケーション名を指定して接続します。Connect by specifying a customized application name:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;

名前付きおよび複数の SQL Server インスタンスNamed and multiple SQL Server instances

SQL ServerSQL Server では、サーバーごとに複数のデータベース インスタンスをインストールできます。allows for the installation of multiple database instances per server. 各インスタンスは個別の名前によって識別されます。Each instance is identified by a specific name. SQL ServerSQL Server の名前付きインスタンスに接続するには、名前付きインスタンスのポート番号を指定するか (推奨)、またはインスタンス名を JDBC URL プロパティまたは datasource プロパティとして指定することができます。To connect to a named instance of SQL ServerSQL Server, you can either specify the port number of the named instance (preferred), or you can specify the instance name as a JDBC URL property or a datasource property. インスタンス名またはポート番号のプロパティを指定しない場合は、既定のインスタンスへの接続が作成されます。If no instance name or port number property is specified, a connection to the default instance is created. 次の例を参照してください。See the following examples:

ポート番号を使用するには、次のように指定します。To use a port number, do the following:

jdbc:sqlserver://localhost:1433;integratedSecurity=true;<more properties as required>;

JDBC URL プロパティを使用するには、次のように指定します。To use a JDBC URL property, do the following:

jdbc:sqlserver://localhost;instanceName=instance1;integratedSecurity=true;<more properties as required>;

接続 URL での値のエスケープEscaping values in the connection URL

スペース、セミコロン、引用符などの特殊文字を挿入するため、接続 URL の値の特定部分のエスケープが必要になる場合があります。You might have to escape certain parts of the connection URL values because of the inclusion of special characters such as spaces, semicolons, and quotation marks. JDBC ドライバーでは、エスケープする文字を中かっこで囲みます。The JDBC driver supports escaping these characters if they are enclosed in braces. たとえば、{;} とするとセミコロンがエスケープされます。For example, {;} escapes a semicolon.

エスケープする値には特殊文字 (特に '='、';'、'[]'、およびスペース) を含めることができますが、中かっこはエスケープできません。Escaped values can contain special characters (especially '=', ';', '[]', and space) but cannot contain braces. エスケープが必要な値に中かっこが含まれる場合は、プロパティのコレクションに加える必要があります。Values that must be escaped and contain braces should be added to a properties collection.

注意

中かっこ内の空白はリテラルでありトリミングされません。White space inside the braces is literal and not trimmed.

Windows 上で統合認証を使用する接続Connecting with integrated authentication On Windows

JDBC ドライバーでは、integratedSecurity 接続文字列プロパティを通じて、Windows オペレーティング システム上でのタイプ 2 の統合認証の使用がサポートされています。The JDBC driver supports the use of Type 2 integrated authentication on Windows operating systems through the integratedSecurity connection string property. 統合認証を使用するには、JDBC ドライバーがインストールされているコンピューターの Windows システム パス上のディレクトリに sqljdbc_auth.dll ファイルをコピーします。To use integrated authentication, copy the sqljdbc_auth.dll file to a directory on the Windows system path on the computer where the JDBC driver is installed.

sqljdbc_auth.dll ファイルは次の場所にインストールされています。The sqljdbc_auth.dll files are installed in the following location:

<"インストール ディレクトリ">\sqljdbc_<"バージョン">\<"言語">\auth<installation directory>\sqljdbc_<version>\<language>\auth\

でサポートされMicrosoft SQL Server 用 JDBC DriverMicrosoft JDBC Driver for SQL Serverているすべてのオペレーティングシステムについては、「 Kerberos 統合認証を使用して SQL Server に接続する」を参照して、アプリケーションが統合を使用してデータベースに接続できるようにするにMicrosoft SQL Server 用 JDBC Driver 4.0Microsoft JDBC Driver 4.0 for SQL Server追加された機能について説明します。種類が4の Kerberos の認証。For any operating system supported by the Microsoft SQL Server 用 JDBC DriverMicrosoft JDBC Driver for SQL Server, see Using Kerberos Integrated Authentication to Connect to SQL Server for a description of a feature added in Microsoft SQL Server 用 JDBC Driver 4.0Microsoft JDBC Driver 4.0 for SQL Server that allows an application to connect to a database using integrated authentication with Type 4 Kerberos.

注意

32 ビットの Java 仮想マシン (JVM) を実行している場合は、オペレーティング システムのバージョンが x64 であっても、x86 フォルダーの sqljdbc_auth.dll ファイルを使用してください。If you are running a 32-bit Java Virtual Machine (JVM), use the sqljdbc_auth.dll file in the x86 folder, even if the operating system is the x64 version. 64 ビットの JVM を x64 プロセッサ上で実行している場合は、x64 フォルダーの sqljdbc_auth.dll ファイルを使用してください。If you are running a 64-bit JVM on a x64 processor, use the sqljdbc_auth.dll file in the x64 folder.

または、java.library.path システム プロパティを設定して sqljdbc_auth.dll のディレクトリを指定することもできます。Alternatively you can set the java.library.path system property to specify the directory of the sqljdbc_auth.dll. たとえば、JDBC ドライバーが既定のディレクトリにインストールされている場合、Java アプリケーションの起動時に次の仮想マシン (VM) 引数を使用することで、DLL の場所を指定できます。For example, if the JDBC driver is installed in the default directory, you can specify the location of the DLL by using the following virtual machine (VM) argument when the Java application is started:

-Djava.library.path=C:\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_<version>\enu\auth\x86

IPv6 アドレスによる接続Connecting with IPv6 addresses

JDBC ドライバーでは、接続プロパティのコレクション、および serverName 接続文字列プロパティと合わせて IPv6 アドレスを使用できます。The JDBC driver supports the use of IPv6 addresses with the connection properties collection, and with the serverName connection string property. jdbc:sqlserver://serverName など、serverName の初期値は、接続文字列内の IPv6 アドレスをサポートしていません。The initial serverName value, such as jdbc:sqlserver://serverName, isn't supported for IPv6 addresses in connection strings. あらゆる接続で、そのままの IPv6 アドレスの代わりに serverName の名前を使用できます。Using a name for serverName instead of a raw IPv6 address will work in every case in the connection. 詳細を次の例に示します。The following examples provide more information.

serverName プロパティを使用するにはTo use the serverName property

jdbc:sqlserver://;serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1;integratedSecurity=true;

プロパティのコレクションを使用するにはTo use the properties collection

Properties pro = new Properties();

pro.setProperty("serverName", "serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1");

Connection con = DriverManager.getConnection("jdbc:sqlserver://;integratedSecurity=true;", pro);

参照See also

JDBC ドライバーによる SQL Server への接続Connecting to SQL Server with the JDBC driver