Формирование URL-адреса соединения
Обычно URL-адреса соединения выглядят следующим образом:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
Где:
jdbc:sqlserver:// (обязательно) — называется подпротоколом и является константой.
имя _сервера (необязательно) — адрес сервера для подключения. Этот адрес может быть DNS или IP-адрес, или он может быть
localhost
или127.0.0.1
для локального компьютера. Имя сервера необходимо указать в коллекции свойств, если оно не указано в URL-адресе соединения.имя_ экземпляра (необязательно) — это экземпляр, к которому
serverName
необходимо подключиться. Подключение выполняется к экземпляру по умолчанию, если не указано другое.portNumber (необязательно) — порт для подключения к
serverName
. Значение по умолчанию —1433
. Если вы используете порт по умолчанию, вам не нужно указывать порт, ни предыдущий:
в URL-адресе.Примечание.
Для оптимальной производительности подключения следует задать
portNumber
при подключении к именованном экземпляру. Это позволит избежать дополнительного обращения к серверу для определения номера порта. Если используется иinstanceName
используетсяportNumber
,portNumber
он будет иметь приоритет иinstanceName
будет игнорироваться.свойство (необязательно) — является одним или несколькими свойствами подключения. Дополнительные сведения см. в статье о настройке свойств подключения. Можно указать любое свойство из списка. Свойства можно разделять только с помощью точки с запятой (
;
), и их нельзя дублировать.
Внимание
В целях безопасности не рекомендуется составлять URL-адрес соединения на основе данных пользователей. В URL-адресе необходимо указывать только имя сервера и драйвер. Для указания значений имени пользователя и пароля следует использовать коллекции свойств соединения. Дополнительные сведения о безопасности в приложениях JDBC см. в статье Защита приложений JDBC Driver.
Свойства подключения
Подробный список свойств, которые можно установить в строке подключения, см. в разделе Установка свойств подключения.
Примеры подключений
Подключитесь к базе данных по умолчанию на локальном компьютере с помощью имени пользователя и пароля:
jdbc:sqlserver://localhost;encrypt=true;user=MyUserName;password=*****;
Примечание.
Хотя в предыдущем примере используется имя пользователя и пароль в строка подключения, следует использовать встроенную безопасность, так как она более безопасна. Дополнительные сведения см . в разделе "Подключение с интегрированной проверкой подлинности " далее в этой статье.
В следующем строка подключения показан пример подключения к базе данных SQL Server с помощью встроенной проверки подлинности и Kerberos из приложения, работающего в любой операционной системе, поддерживаемой драйвером Microsoft JDBC для SQL Server:
jdbc:sqlserver://;servername=server_name;encrypt=true;integratedSecurity=true;authenticationScheme=JavaKerberos
Подключитесь к базе данных по умолчанию на локальном компьютере с помощью встроенной проверки подлинности:
jdbc:sqlserver://localhost;encrypt=true;integratedSecurity=true;
Подключитесь к именованной базе данных на удаленном сервере:
jdbc:sqlserver://localhost;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;
Подключитесь к удаленному серверу с использованием порта по умолчанию:
jdbc:sqlserver://localhost:1433;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;
Подключитесь, указав настраиваемое имя приложения:
jdbc:sqlserver://localhost;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;
Именованные и множественные экземпляры SQL Server
SQL Server позволяет устанавливать несколько экземпляров базы данных на сервер. Каждый экземпляр определяется определенным именем. Чтобы подключиться к именованным экземпляру SQL Server, можно указать номер порта именованного экземпляра (предпочтительный). Можно также указать имя экземпляра как свойство URL-адреса JDBC или свойство источника данных. Если имя экземпляра или свойство номера порта не указано, создается соединение с экземпляром по умолчанию. См. следующие примеры.
Чтобы указать номер порта, используйте следующий формат:
jdbc:sqlserver://localhost:1433;encrypt=true;integratedSecurity=true;<more properties as required>;
Чтобы использовать свойство URL-адреса JDBC, используйте следующий формат:
jdbc:sqlserver://localhost;encrypt=true;instanceName=instance1;integratedSecurity=true;<more properties as required>;
Экранирование значений в URL-адресе подключения
Может потребоваться экранировать определенные части значений URL-адреса соединения, если значения содержат специальные символы, такие как пробелы, точки с запятыми и кавычки. Драйвер JDBC поддерживает экранирование этих значений, заключая их в скобки. Например, {;}
экранирует точку с запятой.
До версии 8.4 escape-значения могут содержать специальные символы (особенно =
, ;
и []
пробел), но не могут содержать фигурные скобки. Значения, которые необходимо преобразовать, и значения, содержащие скобки, следует добавить к коллекции свойств.
В версии 8.4 и более поздних экранированные значения могут содержать специальные символы, включая фигурные скобки. Однако закрывающие фигурные скобки должны быть экранированы. Например, при использовании пароля pass";{}word
в строке подключения необходимо будет экранировать пароль следующим образом:
jdbc:sqlserver://localhost;encrypt=true;username=MyUsername;password={pass";{}}word};
Примечание.
Пустое пространство внутри скобок является литералом и не усекается.
Подключение с интегрированной проверкой подлинности в Windows
Драйвер JDBC поддерживает использование встроенной проверки подлинности типа 2 в операционных системах Windows с использованием свойства строки подключения integratedSecurity
. Чтобы использовать встроенную проверку подлинности, скопируйте mssql-jdbc_auth-<version>-<arch>.dll
файл в каталог на системном пути Windows на компьютере, на котором установлен драйвер JDBC.
Файлы mssql-jdbc_auth-<version>-<arch>.dll
устанавливаются в следующем расположении:
<installation directory>\sqljdbc_<version>\<language>\auth\
Сведения о любой операционной системе, поддерживаемой драйвером Microsoft JDBC для SQL Server, см. в статье "Использование интегрированной проверки подлинности Kerberos для подключения к SQL Server " для описания функции, добавленной в Microsoft JDBC Driver 4.0 для SQL Server, которая позволяет приложению подключаться к базе данных с помощью интегрированной проверки подлинности с типом 4 Kerberos.
Примечание.
Для 32-разрядной виртуальной машины Java следует использовать файл mssql-jdbc_auth-<version>-<arch>.dll
в папке x86, даже если при операционной системе x64. Для 64-разрядной виртуальной машины Java и процессора x64 используйте файл mssql-jdbc_auth-<version>-<arch>.dll
в папке x64.
Или можно задать системное свойство java.library.path, чтобы указать каталог, в котором содержится файл mssql-jdbc_auth-<version>-<arch>.dll
. Например, если драйвер JDBC установлен в каталоге по умолчанию, можно указать местоположение файла DLL, использовав следующий аргумент виртуальной машины (VM) при запуске приложения Java:
-Djava.library.path=C:\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_<version>\enu\auth\x86
Подключение с помощью IPv6-адресов
Драйвер JDBC поддерживает использование IPv6-адресов с коллекцией свойств подключения и свойством serverName
строка подключения. Начальное serverName
значение, напримерjdbc:sqlserver://serverName
, не поддерживается для IPv6-адресов в строка подключения. Использование имени вместо serverName
необработанного IPv6-адреса работает в каждом случае в соединении. Следующие примеры можно использовать как дополнительные источники сведений.
Использование свойства serverName
jdbc:sqlserver://;serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1;encrypt=true;integratedSecurity=true;
Использование коллекции свойств
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);