Membangun URL koneksi

Unduh driver JDBC

Bentuk umum URL koneksi adalah

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

Di mana:

  • jdbc:sqlserver:// (Wajib) - Dikenal sebagai subprotokola dan konstan.

  • serverName (Opsional) - Adalah alamat server yang akan disambungkan. Alamat ini bisa berupa DNS atau alamat IP, atau bisa localhost atau 127.0.0.1 untuk komputer lokal. Jika tidak ditentukan dalam URL koneksi, nama server harus ditentukan dalam kumpulan properti.

  • instanceName (Opsional) - Adalah instans yang akan dihubungkan pada serverName. Jika tidak ditentukan, driver tersambung ke instans default.

  • portNumber (Opsional) - Apakah port yang akan disambungkan pada serverName. Default adalah 1433. Jika Anda menggunakan port default, Anda tidak perlu menentukan port, maupun menetapkan : di URL.

    Catatan

    Untuk performa koneksi yang optimal, atur portNumber saat Anda tersambung ke instans bernama. Ini menghindari perjalanan pulang pergi ke server untuk menentukan nomor port. Jika Anda menggunakan baik portNumber maupun instanceName, maka portNumber akan diutamakan dan instanceName akan diabaikan.

  • properti (Opsional) - Adalah satu atau beberapa properti koneksi opsi. Untuk informasi selengkapnya, lihat Mengatur properti koneksi. Properti apa pun dari daftar dapat ditentukan. Properti hanya dapat dibatasi dengan menggunakan titik koma (;), dan tidak dapat diduplikasi.

Perhatian

Untuk tujuan keamanan, Anda harus menghindari pembuatan URL koneksi berdasarkan input pengguna. Anda seharusnya hanya menentukan nama server dan driver di URL. Untuk nilai nama pengguna dan kata sandi, gunakan kumpulan properti koneksi. Untuk informasi selengkapnya tentang keamanan di aplikasi JDBC Anda, lihat Mengamankan aplikasi driver JDBC.

Properti koneksi

Untuk daftar properti terperinci yang dapat diatur di string koneksi, lihat Mengatur properti koneksi.

Contoh koneksi

Sambungkan ke database default di komputer lokal dengan menggunakan nama pengguna dan kata sandi:

jdbc:sqlserver://localhost;encrypt=true;user=MyUserName;password=<password>;

Catatan

Meskipun contoh sebelumnya menggunakan nama pengguna dan kata sandi di string koneksi, Anda harus menggunakan keamanan terintegrasi karena lebih aman. Untuk informasi selengkapnya, lihat bagian Menyambungkan dengan autentikasi terintegrasi nanti di artikel ini.

String koneksi berikut menunjukkan contoh cara menyambungkan ke database SQL Server menggunakan autentikasi terintegrasi dan Kerberos dari aplikasi yang berjalan pada sistem operasi apa pun yang didukung oleh Driver Microsoft JDBC untuk SQL Server:

jdbc:sqlserver://;servername=server_name;encrypt=true;integratedSecurity=true;authenticationScheme=JavaKerberos
  • Sambungkan ke database default di komputer lokal dengan menggunakan autentikasi terintegrasi:

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

  • Sambungkan ke database bernama di server jarak jauh:

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

  • Sambungkan pada port default ke server jarak jauh:

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

  • Sambungkan dengan menentukan nama aplikasi yang disesuaikan:

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

Instans bernama dan beberapa SQL Server

SQL Server memungkinkan penginstalan beberapa instans database per server. Setiap instans memiliki nama tertentu. Untuk menyambungkan ke instans SQL Server bernama, Anda dapat menentukan nomor port instans bernama (lebih disukai). Anda juga dapat menentukan nama instans sebagai properti URL JDBC atau properti sumber data. Jika Anda tidak menentukan nama instans atau properti nomor port, driver akan membuat koneksi ke instans default. Lihat contoh berikut:

  • Untuk menentukan nomor port, gunakan format berikut:

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

  • Untuk menggunakan properti URL JDBC, gunakan format berikut:

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

Melarikan nilai dalam URL koneksi

Anda mungkin harus keluar dari bagian tertentu dari nilai URL koneksi jika nilai menyertakan karakter khusus seperti spasi, titik koma, dan tanda kutip. Driver JDBC mendukung pelepasan karakter ini dengan mengapitnya dalam kurung kurawal. Misalnya, {;} mengabaikan titik koma.

Sebelum versi 8.4, nilai yang telah diloloskan dapat berisi karakter khusus (terutama =, ;, [], dan spasi) tetapi tidak dapat berisi kurung kurawal. Nilai yang harus diloloskan dan berisi kurung kurawal harus ditambahkan ke koleksi properti.

Dalam versi 8.4 ke atas, nilai yang di-escape dapat berisi karakter khusus, termasuk kurung kurawal. Namun, kurung kurawal penutup harus lolos. Misalnya, dengan kata sandi pass";{}word, string koneksi harus menghindari kata sandi sebagai berikut:

jdbc:sqlserver://localhost;encrypt=true;username=MyUsername;password={pass";{}}word};

Catatan

Ruang putih di dalam kurung kurawal harfiah dan tidak dipangkas.

Menyambungkan dengan autentikasi terintegrasi Di Windows

Driver JDBC mendukung penggunaan autentikasi terintegrasi Tipe 2 pada sistem operasi Windows dengan menggunakan integratedSecurity properti string koneksi. Untuk menggunakan autentikasi terintegrasi, salin mssql-jdbc_auth-<version>-<arch>.dll file ke direktori apa pun yang disertakan dalam variabel lingkungan sistem PATH Windows.

Catatan

DLL tidak perlu berada di direktori yang sama dengan file JAR driver JDBC. Ini hanya perlu berada dalam direktori yang tercantum dalam sistem PATH, misalnya C:\Windows\System32 atau direktori kustom yang Anda tambahkan ke PATH.

File mssql-jdbc_auth-<version>-<arch>.dll diinstal di lokasi berikut:

<installation directory>\sqljdbc_<version>\<language>\auth\

Untuk sistem operasi apa pun yang didukung oleh Microsoft JDBC Driver untuk SQL Server, lihat Menggunakan autentikasi terintegrasi Kerberos untuk menyambungkan ke SQL Server untuk deskripsi fitur yang ditambahkan di Microsoft JDBC Driver 4.0 untuk SQL Server yang memungkinkan aplikasi tersambung ke database menggunakan autentikasi terintegrasi dengan Tipe 4 Kerberos.

Catatan

Jika Anda menjalankan Java Virtual Machine (JVM) 32-bit, gunakan mssql-jdbc_auth-<version>-<arch>.dll file di folder x86, bahkan jika sistem operasi adalah versi x64. Jika Anda menjalankan JVM 64-bit pada prosesor x64, gunakan mssql-jdbc_auth-<version>-<arch>.dll file di folder x64.

Atau, Anda dapat mengatur properti sistem java.library.path untuk menentukan direktori mssql-jdbc_auth-<version>-<arch>.dll. Misalnya, jika Anda menginstal driver JDBC di direktori default, Anda dapat menentukan lokasi DLL dengan menggunakan argumen komputer virtual (VM) berikut saat aplikasi Java dimulai:

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

Menyambungkan dengan alamat IPv6

Driver JDBC mendukung penggunaan alamat IPv6 dengan kumpulan properti koneksi, dan dengan serverName properti string koneksi. Nilai awalserverName, seperti jdbc:sqlserver://serverName, tidak didukung untuk alamat IPv6 dalam string koneksi. Menggunakan nama untuk serverName alih-alih alamat IPv6 mentah berfungsi dalam setiap kasus dalam koneksi. Contoh berikut memberikan informasi selengkapnya.

  • Untuk menggunakan properti serverName:

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

  • Untuk menggunakan kumpulan properti:

    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://;encrypt=true;integratedSecurity=true;", pro);