Membangun URL koneksi
Bentuk umum URL koneksi adalah
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
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
atau127.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 adalah1433
. 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 danportNumber
instanceName
digunakan,portNumber
akan diutamakan daninstanceName
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=*****;
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 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";{}word
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 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 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);