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) - Apakah instans yang akan disambungkan pada serverName. Jika tidak ditentukan, koneksi ke instans default dibuat.

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

    Catatan

    Untuk performa koneksi yang optimal, Anda harus mengatur portNumber kapan Anda terhubung ke instans bernama. Ini akan menghindari perjalanan pulang pergi ke server untuk menentukan nomor port. Jika dan portNumberinstanceName digunakan, 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 dalam 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=*****;

Catatan

Meskipun contoh sebelumnya menggunakan nama pengguna dan kata sandi dalam 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 dapat diidentifikasi dengan 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 tidak ada nama instans atau properti nomor port yang ditentukan, koneksi ke instans default akan dibuat. 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>;

Nilai pelepasan 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, {;} lolos dari titik koma.

Sebelum versi 8.4, nilai yang lolos 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 lolos dapat berisi karakter khusus, termasuk kurung kurawal. Namun, kurung kurawal penutup harus lolos. Misalnya, dengan kata sandi , string koneksi harus keluar dari pass";{}wordkata 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 pada jalur sistem Windows pada komputer tempat driver JDBC diinstal.

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 driver JDBC diinstal 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 awal serverName , 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);

Baca juga