Настройка свойств подключения

СкачатьСкачать драйвер JDBC

Свойства строки подключения могут быть заданы различными способами.

Remarks

В именах свойств не учитывается регистр символов. Дублирующиеся имена свойств разрешаются в следующем порядке:

  1. аргументы API (например, имя пользователя и пароль);
  2. коллекция свойств;
  3. последний экземпляр в строке подключения. Кроме того, в именах свойств разрешено использовать неизвестные значения, и драйвер JDBC не проверяет их на соответствие регистра.

Допускается использование синонимов, которые разрешаются в порядке очередности, аналогично повторяющимся именам свойств.

Свойства

В следующей таблице перечислены все доступные на данный момент свойства строки подключения для драйвера JDBC.

Свойство
Тип
По умолчанию
Описание
aadSecurePrincipalId

Строка

null
(Начиная с версии 9.2) Когда authentication=ActiveDirectoryServicePrincipal, в свойстве aadSecurePrincipalId указывается допустимый безопасный идентификатор клиента Azure Active Directory.
aadSecurePrincipalSecret

Строка

null
(Начиная с версии 9.2) Когда authentication=ActiveDirectoryServicePrincipal, в свойстве aadSecurePrincipalSecret указывается пароль для субъекта Active Directory.
accessToken

Строка

null
(Начиная с версии 6.0) Используйте это свойство для установки подключения к базе данных SQL с помощью маркера доступа. accessToken нельзя задать с помощью URL-адреса подключения.
applicationIntent

Строка

ReadWrite
(Начиная с версии 6.0) Объявляет тип рабочей нагрузки приложения при соединении с сервером.

Возможные значения — ReadOnly и ReadWrite.

Дополнительные сведения об аварийном восстановлении см. в статье о поддержке высокой доступности и аварийного восстановления в JDBC Driver.
applicationName

Строка
[<=128 char]

null
Имя приложения или "Microsoft JDBC Driver for SQL Server", если имя не указано.

Используется для идентификации определенных приложений в различных средствах профилирования и ведения журнала SQL Server.
проверка подлинности

Строка

NotSpecified
(Начиная с версии 6.0) Это необязательное свойство указывает, какой метод проверки подлинности использовать для соединения. Возможные значения: ActiveDirectoryIntegrated, ActiveDirectoryPassword, ActiveDirectoryMSI (версия 7.2 и выше), ActiveDirectoryInteractive (версия 9.2 и выше), ActiveDirectoryServicePrincipal (версия 9.2 и выше), SqlPassword и NotSpecified (по умолчанию).

Используйте ActiveDirectoryIntegrated (версия 6.0 и выше) для подключения к Базе данных SQL с помощью встроенной проверки подлинности Windows.

Используйте ActiveDirectoryPassword (версия 6.0 и выше) для подключения к Базе данных SQL с помощью имени и пароля субъекта Azure AD.

Используйте ActiveDirectoryMSI (версия 7.2 и выше) для подключения к базе данных SQL из ресурса Azure. Например, виртуальная машина Azure, служба приложений или приложение-функция с использованием проверки подлинности управляемого удостоверения.

Двумя типами управляемых удостоверений, поддерживаемых драйвером при использовании режима проверки подлинности ActiveDirectoryMSI являются:
1. Управляемое удостоверение, назначаемое системой. Используется для получения accessToken по умолчанию.
2. Управляемое удостоверение, назначаемое пользователем. Используется для получения accessToken, если идентификатор клиента управляемого удостоверения указан со свойством соединения msiClientId.

Используйте ActiveDirectoryInteractive для подключения к базе данных SQL с помощью интерактивного процесса проверки подлинности.

Используйте ActiveDirectoryServicePrincipal (версия 9.2 и выше) для подключения к базе данных SQL с помощью идентификатора клиента и секрета удостоверения субъекта-службы.

Используйте SqlPassword для подключения к базе данных SQL с помощью свойств userName/user и password.

Используйте NotSpecified, если ни один из этих методов проверки подлинности не требуется.

Внимание! Если в параметрах проверки подлинности установлено значение ActiveDirectoryIntegrated, необходимо установить следующие две библиотеки: mssql-jdbc_auth-<version>-<arch>.dll (доступна в пакете драйверов JDBC) и библиотеку проверки подлинности Azure Active Directory для SQL Server (ADAL.DLL). Библиотеку ADAL можно установить через Microsoft ODBC Driver for SQL Server или Microsoft OLE DB Driver for SQL Server. Для ADAL.DLL драйвер JDBC поддерживает только версию 1.0.2028.318 и выше.

Примечание. Если для свойства проверки подлинности задано любое значение, отличное от NotSpecified, драйвер по умолчанию использует шифрование TLS, ранее называвшееся шифрованием SSL.

Сведения о настройке проверки подлинности Azure Active Directory см. в этой статье.
authenticationScheme

Строка

NativeAuthentication
Указывает, какой тип встроенной безопасности должен использоваться приложением. Возможные значения: JavaKerberos, NTLM (версия 7.4 и выше) и NativeAuthentication по умолчанию.

NativeAuthentication заставляет драйвер в Windows загружать mssql-jdbc_auth-<version>-<arch>.dll (например, mssql-jdbc_auth-8.2.2.x64.dll), который используется для получения данных встроенной проверки подлинности.

(При использовании версий драйвера от 6.0 до 7.4 загружаемая библиотека встроенной проверки подлинности имеет имя sqljdbc_auth.dll.)

При использовании authenticationScheme=JavaKerberos необходимо указать полное доменное имя в свойстве serverName или serverSpn. В противном случае возникает ошибка (сервер не найден в базе данных Kerberos).

Дополнительные сведения об использовании authenticationScheme=JavaKerberos см. в руководстве по встроенной проверке подлинности Kerberos для подключения к SQL Server.

При использовании authenticationScheme=NTLM необходимо указать домен Windows в свойстве domain или domainName, а также учетные данные Windows в свойствах user или userName и password. В противном случае возникает ошибка (необходимо указать свойства подключения).
cancelQueryTimeout

INT

-1
(Начиная с версии 6.4) Это свойство можно использовать для отмены queryTimeout для подключения. Выполнение запроса зависает и не вызывает исключение, если TCP-подключение к серверу удаляется без уведомления. Это свойство применимо, только если для соединения также задано значение queryTimeout.

Драйвер ожидает общее количество секунд cancelQueryTimeout + queryTimeout, чтобы удалить подключение и закрыть канал.

Значение этого свойства по умолчанию равно 1, а поведение имеет неограниченное время ожидания.
clientCertificate

Строка

null
(Начиная с версии 8.4) Указывает расположение сертификата, используемого для проверки подлинности сертификата клиента. Драйвер JDBC будет поддерживать расширения файлов PFX, PEM, DER и CER.

Дополнительные сведения см. в статье Проверка подлинности сертификата клиента для сценариев замыкания на себя.
clientKey

Строка

null
(Начиная с версии 8.4) Указывает расположение закрытого ключа для сертификатов PEM, DER или CER, заданных атрибутом clientCertificate.

Дополнительные сведения см. в статье Проверка подлинности сертификата клиента для сценариев замыкания на себя.
clientKeyPassword

Строка

null
(Начиная с версии 8.4) Задает необязательную строку пароля для доступа к закрытому ключу файла clientKey.

Дополнительные сведения см. в статье Проверка подлинности сертификата клиента для сценариев замыкания на себя.
columnEncryptionSetting

Строка
["Enabled" | "Disabled"]

Выключено
(Начиная с версии 6.0) Значение "Включено" позволяет использовать функцию Always Encrypted (AE). Когда функция Always Encrypted включена, драйвер JDBC прозрачно шифрует и расшифровывает конфиденциальные данные, хранящиеся в столбцах зашифрованной базы данных на сервере.

Дополнительные сведения о функции Always Encrypted см. в статье Использование функции Always Encrypted с драйвером JDBC.

Примечание. Функция Always Encrypted доступна в SQL Server 2016 или более поздних версий и Базе данных SQL Azure.
connectRetryCount

INT
[0..255]

1
(Для версий 9.4 и выше) Число повторных попыток подключения в случае сбоя соединения.
connectRetryInterval

INT
[1..60]

10
(Для версий 9.4 и выше) Число секунд между попытками подключения.
databaseName,
База данных

Строка
[<=128 char]

null
Имя базы данных для соединения.

Если не установлено, подключение выполняется к базе данных по умолчанию.
delayLoadingLobs

Логическое
["true" | "false"]

Да
Флаг, указывающий, следует ли выполнять потоковую передачу всех объектов LOB, извлекаемых из набора результатов. Если задать для этого свойства значение "false", весь объект LOB будет загружен в память без потоковой передачи.
domainName,
домен

Строка
null
(Начиная с версии 7.4) Домен Windows для проверки подлинности при использовании проверки подлинности NTLM.
disableStatementPooling

Логическое
["true" | "false"]

Да
Флаг, указывающий, следует ли использовать создание пула инструкций.
enablePrepareOnFirst...
PreparedStatementCall

Логическое
["true" | "false"]

false
Задайте значение true, чтобы разрешить создание обработчика подготовленной инструкции путем вызова sp_prepexec при первом выполнении подготовленной инструкции.

Задайте значение false, чтобы изменить первое выполнение подготовленной инструкции для вызова sp_executesql, а не подготовки инструкции. В случае второго выполнения вызывается sp_prepexec для настройки обработчика подготовленной инструкции.
enclaveAttestationUrl

Строка

null
(Начиная с версии 8.2) Это необязательное свойство указывает URL-адрес конечной точки службы аттестации, который следует использовать для Always Encrypted с безопасными анклавами.

Дополнительные сведения об Always Encrypted с безопасными анклавами см. в статье Always Encrypted с безопасными анклавами.
enclaveAttestationProtocol

Строка

null
(Начиная с версии 8.2) Это необязательное свойство указывает протокол аттестации, который следует использовать для Always Encrypted с безопасными анклавами. Сейчас значение HGS является единственным значением, которое поддерживается для этого поля.

Дополнительные сведения об Always Encrypted с безопасными анклавами см. в статье Always Encrypted с безопасными анклавами.
encrypt

Логическое
["true" | "false"]

false
Установите значение true, чтобы указать, что SQL Server использует шифрование TLS для всех данных, передаваемых между клиентом и сервером, при условии, что на сервере установлен сертификат. Значение по умолчанию — «false».

Начиная с версии 6.0 представлен новый параметр подключения проверки подлинности, который по умолчанию использует шифрование TLS.

Дополнительные сведения об этом свойстве см. в описании свойства authentication.
failoverPartner

Строка

null
Имя сервера отработки отказа, используемого в конфигурации зеркального отображения базы данных. Это свойство используется при ошибке первоначального подключения к основному серверу. После выполнения первоначального подключения это свойство игнорируется. Должен использоваться со свойством databaseName.

Примечание. Драйвер не поддерживает указание номера порта экземпляра сервера для экземпляра партнера по обеспечению отработки отказа в составе свойства failoverPartner в строке подключения. Однако поддерживается указание свойств serverName, instanceName и portNumber экземпляра основного сервера и свойства failoverPartner экземпляра партнера по обеспечению отработки отказа в одной строке подключения.

Если в свойстве подключения Server указано имя виртуальной сети, то использовать зеркальное отображение базы данных нельзя. Дополнительные сведения об аварийном восстановлении см. в статье о поддержке высокой доступности и аварийного восстановления в JDBC Driver.
fips

Логическое
["true" | "false"]

"false"
Свойство для виртуальной машины Java с поддержкой FIPS должно иметь значение true.
fipsProvider

Строка

null
Поставщик FIPS, настроенный в виртуальной машине Java. Например, BCFIPS или SunPKCS11-NSS. Удалено в версии 6.4.0 — см. подробности здесь.
gsscredential

org.ietf.jgss.GSSCredential

null
(Начиная с версии 6.2) В этом свойстве можно передать учетные данные пользователя, используемые для ограниченного делегирования Kerberos.

Его следует использовать с integratedSecurity под значением true и JavaKerberos под значением authenticationScheme.
hostNameInCertificate

Строка

null
Имя узла используется для проверки TLS/SSL-сертификата SQL Server.

Если свойство hostNameInCertificate не указано или равно null, то Microsoft JDBC Driver для SQL Server использует значение свойства serverName в URL-адресе подключения в качестве имени узла для проверки TLS/SSL-сертификата SQL Server.

Примечание. Это свойство используется в сочетании со свойствами шифрования/проверки подлинности и свойством trustServerCertificate. Это свойство влияет на проверку сертификата, если соединение использует шифрование TLS и trustServerCertificate имеет значение false. Для успешного установления TLS-подключения передаваемое в hostNameInCertificate значение должно совпадать с общим именем (CN) или DNS-именем в поле "Альтернативное имя субъекта" сертификата сервера. Дополнительные сведения о поддержке шифрования см. в разделе Основные сведения о поддержке шифрования.
INSTANCENAME

Строка
[<=128 char]

null
Имя экземпляра базы данных, к которому производится подключение. Если не задано, подключение выполняется к экземпляру по умолчанию. В случае, когда указан порт и instanceName, см. примечания к порту.

Если в свойстве подключения Server указано имя виртуальной сети, то использовать свойство подключения instanceName нельзя. Дополнительные сведения об аварийном восстановлении см. в статье о поддержке высокой доступности и аварийного восстановления в JDBC Driver.
integratedSecurity

Логическое
["true"|"false"]

false
Установите значение "true", чтобы указать, что учетные данные Windows используются SQL Server на операционных системах Windows. Если установлено значение "true", драйвер JDBC выполняет поиск учетных данных, которые были предоставлены при входе пользователя в сеть или на компьютер, в локальном кэше учетных данных компьютера.

Установите значение "true" (с помощью authenticationscheme=JavaKerberos), чтобы указать, что учетные данные Kerberos используются с помощью SQL Server. Дополнительные сведения о проверке подлинности Kerberos см. в статье Использование встроенной проверки подлинности Kerberos для подключения к SQL Server.

Установите значение "true" (с помощью authenticationscheme=NTLM), чтобы указать, что учетные данные NTLM используются с помощью SQL Server.

Если установлено значение false, необходимо предоставить имя пользователя и пароль.
jaasConfigurationName

Строка

SQLJDBCDriver
(Начиная с версии 6.2) Каждое подключение к SQL Server может иметь собственный файл конфигурации входа JAAS для установления подключения Kerberos. Имя файла конфигурации входа в систему можно передать через это свойство.
По умолчанию драйвер устанавливает useDefaultCcache = true для IBM JVM, и useTicketCache = true — для других JVM.
keyStoreAuthentication

Строка

null
(Начиная с версии 6.0) Это свойство определяет, какое хранилище ключей можно использовать с Always Encrypted, и определяет механизм проверки подлинности, используемый для проверки подлинности в хранилище ключей. Драйвер поддерживает беспроблемную настройку хранилища ключей Java, если установлено "keyStoreAuthentication = JavaKeyStorePassword". Для использования этого свойства необходимо также установить свойства keyStoreLocation и keyStoreSecret для хранилища ключей Java.

Дополнительные сведения о функции Always Encrypted см. в статье Использование функции Always Encrypted с драйвером JDBC.

Начиная с Microsoft JDBC Driver 8.4 можно задать keyStoreAuthentication=KeyVaultManagedIdentity или keyStoreAuthentication=KeyVaultClientSecret, чтобы выполнить проверку подлинности в Azure Key Vault с помощью управляемых удостоверений.

Дополнительные сведения о функции Always Encrypted см. в статье Использование функции Always Encrypted с драйвером JDBC.
keyStoreLocation

Строка

null
(Начиная с версии 6.0) Когда keyStoreAuthentication=JavaKeyStorePassword, свойство keyStoreLocation определяет путь к файлу хранилища ключей Java, в котором хранится основной ключ столбца, который будет использоваться с данными Always Encrypted. Путь должен включать имя файла хранилища ключей.

Дополнительные сведения о функции Always Encrypted см. в статье Использование функции Always Encrypted с драйвером JDBC.
keyStorePrincipalId

Строка

null
(Начиная с версии 8.4) Если keyStoreAuthentication=KeyVaultManagedIdentity, свойство keyStorePrincipalId указывает действительный идентификатор клиента приложения Azure Active Directory.

Дополнительные сведения о функции Always Encrypted см. в статье Использование функции Always Encrypted с драйвером JDBC.
keyStoreSecret

Строка

null
(Начиная с версии 6.0) Когда keyStoreAuthentication=JavaKeyStorePassword, в свойстве keyStoreSecret указывается пароль, который будет использоваться для хранилища ключей и для ключа. При использовании хранилища ключей Java пароль к хранилищу ключей и пароль к ключу должны быть одинаковыми.

Дополнительные сведения о функции Always Encrypted см. в статье Использование функции Always Encrypted с драйвером JDBC.
lastUpdateCount

Логическое
["true" | "false"]

Да
Если установлено значение true, возвращается только последнее значение счетчика обновлений из инструкции SQL, переданной серверу. Оно может быть использовано в одной из инструкций SELECT, INSERT, DELETE, чтобы игнорировать другие изменения счетчика обновлений, вызываемые триггерами сервера. Установка для этого свойства значения false влечет за собой возврат всех значений счетчика обновлений, включая изменения, вызванные триггерами сервера.

Примечание. Это свойство применяется только при использовании с методами executeUpdate. Все другие методы возвращают все результаты и значения счетчика обновлений. Это свойство влияет только на значения счетчика обновлений, возвращаемые триггерами сервера. Оно не влияет на результирующие наборы или ошибки, возникшие в процессе выполнения триггеров.
lockTimeout

INT

-1
Время в миллисекундах, по истечении которого база данных сообщит об истечении времени ожидания блокировки. Режим по умолчанию — неограниченное время ожидания. Если задано, это значение по умолчанию для всех инструкций в подключении. Statement.setQueryTimeout() можно использовать для установки времени ожидания для определенных инструкций. Значение может быть равным 0 — время ожидания отсутствует.
loginTimeout

INT
[0..65535]

15
Время в секундах, по истечении которого драйвер инициирует превышение времени ожидания неудачного подключения. Нулевое значение указывает, что время ожидания равно системному времени ожидания по умолчанию, которое по умолчанию составляет 15 секунд. Ненулевое значение представляет время в секундах, по истечении которого драйвер инициирует превышение времени ожидания неудачного подключения.

Если в свойстве подключения Server указано имя виртуальной сети, то необходимо задать значение ожидания три минуты или более, чтобы была возможна отработка отказа при подключении. Дополнительные сведения об аварийном восстановлении см. в статье о поддержке высокой доступности и аварийного восстановления в JDBC Driver.
maxResultBuffer

Строка

null
(Начиная с версии 9.2) С помощью maxResultBuffer можно задать максимальное число байтов для считывания из результирующего набора. Если этот параметр не указан, считывается весь результирующий набор. Размер можно указать двумя способами:
1) в байтах (например, 100, 150M, 300K, 400G);
2) в процентах от максимального объема памяти кучи (например, 10p, 15pct, 20percent).
msiClientId

Строка

null
(Начиная с версии 7.2) Идентификатор клиента управляемого удостоверения, который будет использоваться для получения accessToken при установлении подключения в режиме аутентификации ActiveDirectoryMSI.
multiSubnetFailover

Логическое

false
Всегда указывайте MultiSubnetFailover=True при соединении с прослушивателем группы доступности SQL Server или экземпляром отказоустойчивого кластера SQL Server. multiSubnetFailover=true настраивает драйвер для ускоренного обнаружения активного (в данный момент) сервера и подключения к нему. Допустимые значения — true и false. Дополнительные сведения об аварийном восстановлении см. в статье о поддержке высокой доступности и аварийного восстановления в JDBC Driver.

Доступ к свойству подключения multiSubnetFailover программным способом возможен через свойства getPropertyInfo, getMultiSubnetFailover и setMultiSubnetFailover.

Примечание. Начиная с Microsoft JDBC Driver 6.0 для SQL Server при подключении к прослушивателю группы доступности multiSubnetFailover больше не требуется устанавливать в значение true. Новое свойство transparentNetworkIPResolution, включенное по умолчанию, обеспечивает обнаружение и подключение к (текущему) активному серверу.
packetSize

INT
[-1 | 0 | 512..32767]

8000
Размер (в байтах) сетевого пакета, используемого для обмена данными с сервером. Значение -1 указывает на использование размера сетевого пакета сервера по умолчанию. Значение 0 указывает на использование максимального значения — 32767. Если этому свойству присвоено значение за пределами допустимого диапазона значений, возникнет исключение.

Внимание! Не рекомендуется использовать свойство packetSize при включенном шифровании (encrypt=true). В противном случае в работе драйвера может быть вызвана ошибка подключения. Дополнительные сведения об этом свойстве см. в описании метода setPacketSize класса SQLServerDataSource.
password

Строка
[<=128 char]

null
Пароль базы данных при подключении с помощью пользователя SQL и пароля.
Для соединения Kerberos с именем участника и паролем это свойство устанавливается в качестве пароля субъекта Kerberos.
portNumber,
порт

INT
[0..65535]

1433
Порт, по которому сервер ожидает передачи данных. Если номер порта задан в строке подключения, запросы к SQLbrowser не выполняются. В случае, когда указан порт и instanceName, подключение выполняется к указанному порту. Однако выполняется проверка instanceName, и если значение этого параметра не соответствует порту, возникает ошибка.

Внимание! Рекомендуется всегда указывать номер порта, так как это более безопасно, чем использование SQLbrowser.
queryTimeout

INT

-1
Количество секунд для времени ожидания по запросу. Значение по умолчанию — 1, что означает бесконечное время ожидания. Установка этого значения в 0 также предполагает неограниченное время ожидания.
realm

Строка

null
(Для версий 9.4 и выше) Область проверки подлинности Kerberos. Установка этого значения переопределит область проверки подлинности Kerberos, которую драйвер автоматически определит на основе области сервера.
репликация;

Логическое
["true" | "false"]

false
(Для версий 9.4 и выше) Этот параметр сообщает серверу, используется ли соединение для репликации. Если этот параметр установлен, триггеры с параметром NOT FOR REPLICATION не срабатывают при подключении.
responseBuffering

Строка
["full" | "adaptive"]

adaptive
Если свойство имеет значение adaptive, это указывает на буферизацию необходимого минимума данных. По умолчанию используется режим adaptive.

Если это свойство имеет значение full, при выполнении инструкции с сервера считывается весь результирующий набор.

Примечание. После обновления драйвера JDBC с версии 1.2 по умолчанию будет использоваться режим буферизации adaptive. Чтобы сохранить в приложении режим по умолчанию как в версии 1.2, необходимо присвоить свойству responseBufferring значение full в свойствах подключения или с помощью метода setResponseBuffering объекта SQLServerStatement.
selectMethod

Строка
["direct" | "cursor"]

direct
Если этому свойству задано значение "cursor", то для каждого созданного в этом подключении запроса с курсорами TYPE_FORWARD_ONLY и CONCUR_READ_ONLY создается курсор базы данных. Это свойство обычно необходимо, только если приложение создает очень большие результирующие наборы, которые не могут полностью находиться в клиентской памяти. Если свойство имеет значение cursor, в клиентской памяти сохраняется ограниченное число строк результирующего набора.

Режим по умолчанию — все строки результирующего набора сохраняются в клиентской памяти. Такой вариант обеспечивает наибольшую производительность, когда приложение обрабатывает все строки.
sendStringParameters...
AsUnicode

Логическое
["true" | "false"]

Да
Если свойство sendStringParametersAsUnicode имеет значение true, то строковые параметры отправляются на сервер в формате Юникода.

Если свойство sendStringParametersAsUnicode имеет значение false, то строковые параметры отправляются на сервер в формате, отличном от Юникода, например ASCII/MBCS.

Значение по умолчанию для свойства sendStringParametersAsUnicode — true.

Примечание. Проверка свойства sendStringParametersAsUnicode выполняется только при отправке значений параметра со следующими типами JDBC: CHAR, VARCHAR или LONGVARCHAR. Новые методы национальных символов в JDBC 4.0, например методы setNString, setNCharacterStream и setNClob классов SQLServerPreparedStatement и SQLServerCallableStatement, всегда выполняют отправку на сервер своих значений параметров в формате Юникода, независимо от значения свойства.

Для оптимальной производительности при работе с типами данных JDBC CHAR, VARCHAR и LONGVARCHAR приложение должно установить свойство sendStringParametersAsUnicode в значение false и использовать методы, не поддерживающие национальные символы: setString, setCharacterStream и setClob классов SQLServerPreparedStatement и SQLServerCallableStatement.

Когда приложение присваивает свойству sendStringParametersAsUnicode значение false и использует метод, не поддерживающий национальные символы, для доступа на стороне сервера к типам данных в формате Юникода (например, nchar, nvarchar и ntext), часть данных может быть потеряна, если параметры сортировки базы данных не поддерживают символы в строковых параметрах, которые передаются методом, не поддерживающим национальные символы.

Приложение должно использовать методы setNString, setNCharacterStream и setNClob, поддерживающие национальные символы, для SQLServerPreparedStatement, и классы SQLServerCallableStatement для типов данных JDBC NCHAR, NVARCHAR и LONGNVARCHAR.
sendTemporalDataTypesAsStringForBulkCopy

Логическое
["true" | "false"]

Да
(Начиная с версии 8.4) Это свойство соединения, если задано значение "false", отправит типы данных DATE, DATETIME, DATIMETIME2, DATETIMEOFFSET, SMALLDATETIME и TIME в качестве соответствующих типов вместо отправки их в виде строки.

Если для этого свойства соединения задано значение false, драйвер принимает только строковый литерал по умолчанию для каждого темпорального типа данных, например:

DATE: YYYY-MM-DD
DATETIME: YYYY-MM-DD hh:mm:ss[.nnn]
DATETIME2: YYYY-MM-DD hh:mm:ss[.nnnnnnn]
DATETIMEOFFSET: YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+/-}hh:mm]
SMALLDATETIME: YYYY-MM-DD hh:mm:ss
TIME: hh:mm:ss[.nnnnnnn]
sendTimeAsDatetime

Логическое
["true" | "false"]

Да
Это свойство добавлено в SQL Server JDBC Driver 3.0.

Установите значение "true", чтобы отправить значения java.sql.time на сервер как значения SQL Server datetime.
Установите значение "false", чтобы отправить значения java.sql.time на сервер как значения SQL Server time.

Значение по умолчанию этого свойства сейчас установлено как "true" и может измениться в будущем выпуске.

Дополнительную информацию о том, как Microsoft JDBC Driver для SQL Server настраивает значения java.sql.Time перед отправкой на сервер, смотрите в Configuring How java.sql.Time Values are Sent to the Server (Настройка отправки временных значений java.sql.Time на сервер).
serverName,
server

Строка

null
Компьютер, на котором работает SQL Server или База данных SQL Azure.

Можно также указать имя виртуальной сети в группе доступности Группы доступности AlwaysOn. Дополнительные сведения об аварийном восстановлении см. в статье о поддержке высокой доступности и аварийного восстановления в JDBC Driver.
serverNameAsACE

Логическое
["true" | "false"]

false
(Начиная с версии 6.0) Задайте значение true, чтобы указать, что драйвер должен преобразовать имя сервера в формате Юникода в ASCII-совместимую кодировку (Punycode) для данного подключения. Если этот параметр имеет значение false, драйвер подключается с использованием имени сервера, указанного пользователем.

Дополнительные сведения о функциях поддержки различных языков см. в статье Функции поддержки разных языков JDBC Driver.
serverPreparedStatement...
DiscardThreshold

Целое число

10
(Начиная с версии 6.2) Это свойство определяет, сколько невыполненных операций отмены для подготовленных инструкций (sp_unprepare) допускается для каждого подключения, прежде чем на сервере будет выполнен вызов очистки незавершенных обработчиков.

Если это свойство установлено в значение <= 1, то действия аннулирования выполняются немедленно после завершения подготовленной инструкции. Если задано значение >1, такие вызовы объединяются в пакет, чтобы снизить накладные расходы на частый вызов sp_unprepare.
serverSpn

Строка

null
(Начиная с версии 4.2) Это необязательное свойство можно использовать для указания имени субъекта-службы (SPN) подключения Java Kerberos. Используется с authenticationScheme.

Для указания имени субъекта-службы оно может быть в виде "MSSQLSvc/fqdn:port@REALM", где fqdn — это полное доменное имя, port — номер порта, а REALM — это область Kerberos SQL Server в верхнем регистре.

Примечание. Параметр @REALM является необязательным, если область по умолчанию клиента (как указано в конфигурации Kerberos) совпадает с областью Kerberos для SQL Server.

Дополнительные сведения об использовании serverSpn с Java Kerberos см. в руководстве по встроенной проверке подлинности Kerberos для подключения к SQL Server.
socketFactoryClass

Строка

null
(Начиная с версии 8.4) Указывает имя класса для настраиваемой фабрики сокетов, используемой вместо фабрики сокетов по умолчанию.
socketTimeout

INT

0
Количество миллисекунд ожидания до истечения времени ожидания чтения или принятия сокета. Значение по умолчанию — 0, что означает бесконечное время ожидания.
statementPooling...
CacheSize

INT

0
(Начиная с версии 6.4) Это свойство может быть использовано для включения кэширования обработчика готовых инструкций в драйвере.

Это свойство определяет размер кэша для создания пула инструкций.

Это свойство может использоваться только со свойством подключения disableStatementPooling, которое должно быть установлено в значение false. Установка disableStatementPooling на значение "true" или statementPoolingCacheSize — на 0 отключает кэширование подготовленных инструкций.
sslProtocol

Строка

TLS
(Начиная с версии 6.4) Это свойство может использоваться для указания протокола TLS, который должен учитываться для безопасного соединения.
Возможны следующие значения: TLS, TLSv1, TLSv1.1, и TLSv1.2.

Дополнительные сведения о протоколе SSL см. в разделе SSLProtocol.
transparentNetwork...
IPResolution

Логическое
["true" | "false"]

Да
(Начиная с версии 6.0) Это свойство обеспечивает более быстрое обнаружение активного (в данный момент) сервера и подключение к нему. Возможными значениями являются "true" и "false", где "true" — значение по умолчанию.

До выхода Microsoft JDBC Driver 6.0 для SQL Server приложение должно было включать в строку подключения значение "multiSubnetFailover=true", чтобы указать, что оно подключается к группе доступности Always On. Без установки ключевого слова подключения multiSubnetFailover на значение "true", приложение может столкнуться с истечением времени ожидания при подключении к группе доступности AlwaysOn. Начиная с версии 6.0 приложению не нужно задавать значение true для параметра multiSubnetFailover.

Примечание. При transparentNetworkIPResolution=true первая попытка подключения использует 500 мс в качестве времени ожидания. Любые последующие попытки используют ту же логику времени ожидания, которая используется свойством multiSubnetFailover.
trustManagerClass

Строка

null
(Начиная с версии 6.4) Полное имя класса пользовательской реализации javax.net.ssl.TrustManager.
trustManager...
ConstructorArg

Строка

null
(Начиная с версии 6.4) Необязательный аргумент для передачи конструктору TrustManager. Если указан trustManagerClass и запрашивается зашифрованное подключение, то используется пользовательский TrustManager, а не используемый по умолчанию TrustManager на основе хранилища ключей виртуальной машины Java.
trustServerCertificate

Логическое
["true" | "false"]

false
Установите значение true, чтобы драйвер не проверял TLS/SSL-сертификат сервера.

Если значение равно "true", TLS/SSL-сертификат сервера автоматически считается доверенным, когда для шифрования уровня связи используется TLS.

Если значение — "false", то драйвер выполнит проверку TLS-сертификата сервера. Если проверка сертификата сервера завершается ошибкой, в работе драйвера будет вызвана ошибка и подключение будет закрыто. Значение по умолчанию — «false». Для успешного установления TLS/SSL-подключения передаваемое в serverName значение должно в точности совпадать с общим именем (CN) или DNS-именем в альтернативном имени субъекта (SAN) сертификата сервера. Дополнительные сведения о поддержке шифрования см. в разделе Основные сведения о поддержке шифрования.

Примечание. Это свойство используется в сочетании со свойствами шифрования/проверки подлинности. Это свойство оказывает влияние на проверку TLS/SSL-сертификата сервера только в том случае, если для подключения используется шифрование TLS.
trustStore

Строка

null
Путь к файлу сертификата trustStore (включая имя файла). Файл trustStore содержит список сертификатов, которым доверяет клиент.

Когда свойство не задано или имеет значение null, драйвер будет использовать правила поиска фабрики диспетчеров доверия, чтобы определить, какой из хранящихся сертификатов необходимо использовать.

Используемая по умолчанию фабрика SunX509 TrustManagerFactory пытается найти доверенный ресурс, производя поиск в следующем порядке:

Файл, указанный в системном свойстве javax.net.ssl.trustStore виртуальной машины Java.

Файл "<домашний_каталог-java>/lib/security/jssecacerts".

Файл "<домашний_каталог-java>/lib/security/cacerts".



Дополнительные сведения об интерфейсе SUNX509 TrustManager см. в документации по нему на веб-сайте компании Sun Microsystems.

Примечание. Это свойство влияет на подстановку сертификата trustStore, только если соединение использует шифрование TLS и trustServerCertificate имеет значение false.
trustStorePassword

Строка

null
Пароль, используемый для проверки целостности данных trustStore.

Если задано свойство trustStore, а свойство trustStorePassword не задано, проверка целостности trustStore не выполняется.

Если значение не задано как для свойства trustStore, так и для свойства trustStorePassword, драйвер будет использовать системные свойства виртуальной машины Java javax.net.ssl.trustStore и javax.net.ssl.trustStorePassword. Если не задано значение системного свойства javax.net.ssl.trustStorePassword, проверка целостности trustStore не выполняется.

Если свойство trustStore не задано, а свойство trustStorePassword задано, драйвер JDBC будет использовать файл, указанный в свойстве javax.net.ssl.trustStore, в качестве доверенного хранилища, а целостность доверенного хранилища будет проверяться с использованием указанного trustStorePassword. Этот параметр требуется в случае, если клиентское приложение не желает сохранять пароль в системном свойстве виртуальной машины Java.

Примечание. Свойство trustStorePassword влияет на подстановку сертификата trustStore, только если соединение использует TLS-подключение и trustServerCertificate имеет значение false.
trustStoreType

Строка

JKS
Установите это свойство, чтобы указать тип хранилища доверия, который будет использоваться для режима FIPS.

Возможными значениями являются либо PKCS12, либо тип, заданный поставщиком FIPS.
useBulkCopyFor...
BatchInsert

Логическое
["true" | "false"]

false
(Начиная с версии 9.2) Это свойство подключения может быть включено для прозрачного использования API массового копирования при выполнении пакетной вставки с помощью java.sql.PreparedStatement. Эта функция потенциально обеспечивает более высокую производительность.

Эта функция по умолчанию отключена. Для включения этого свойства установите значение "true".
Важное примечание. Эта функция поддерживает только полностью параметризованные запросы INSERT. Если запросы INSERT объединены другими SQL-запросами или содержат данные в значениях, то выполнение будет возвращено к базовой операции пакетной вставки.

Дополнительные сведения о том, как использовать это свойство, см. в статье Использование API массового копирования для операции пакетной вставки.
useFmtOnly

Логическое
["true" | "false"]

false
(Начиная с версии 7.4) Предоставляет альтернативный способ запроса метаданных параметров с сервера. Установите это свойство в значение "true", чтобы указать, что драйвер должен использовать логику SET FMTONLY при запросе метаданных параметров. По умолчанию это свойство отключено, и использовать его не рекомендуется, так как SET FMTONLY помечено для удаления. useFmtOnly доступно для использования только в качестве обходного пути для известных проблем и ограничений в sp_describe_undeclared_parameters.

В настоящее время эта функция поддерживает только одиночные SELECT/INSERT/UPDATE/DELETE запросы. Попытка использовать эту возможность с неподдерживаемыми или многочисленными запросами приведет к тому, что драйвер попытается проанализировать запросы, но, скорее всего, выдаст исключение.

Дополнительные сведения об этом свойстве см. в статье Получение ParameterMetaData через useFmtOnly.
userName,
пользователь

Строка
[<=128 char]

null
Пользователь базы данных при подключении с помощью пользователя SQL и пароля.

Для соединения Kerberos с именем участника и паролем это свойство устанавливается в качестве имени участника Kerberos.
workstationID

Строка
[<=128 char]

<пустая строка>
Идентификатор рабочей станции. Используется для идентификации определенной рабочей станции в различных средствах профилирования и ведения журнала.

Если не задано, используется <пустая строка>.
xopenStates

Логическое
["true" | "false"]

false
Установите значение true, чтобы указать, что драйвер возвращает в исключениях коды состояний, совместимые с XOPEN.

Значение по умолчанию — возвращать коды состояний SQL 99.
   

Примечание

Драйвер Microsoft JDBC Driver для SQL Server принимает значения сервера по умолчанию для свойств подключения, за исключением ANSI_DEFAULTS и IMPLICIT_TRANSACTIONS. Драйвер Microsoft JDBC Driver для SQL Server автоматически устанавливает свойство ANSI_DEFAULTS в значение ON, а свойство IMPLICIT_TRANSACTIONS — в значение OFF.

Важно!

Если проверка подлинности установлена в значение ActiveDirectoryPassword, то следующая библиотека должна быть включена в classpath: microsoft-authentication-library-for-java. Его можно найти в Maven Repository. Самый простой способ скачать библиотеку и ее зависимости — использовать Maven:

  1. Установка Maven в систему
  2. Перейдите на страницу драйвера GitHub.
  3. Скачайте файл pom.xml
  4. Для загрузки библиотеки и ее зависимостей выполните следующую команду Maven: mvn dependency:copy-dependencies

См. также раздел

Подключение к SQL Server с помощью JDBC Driver
Режим FIPS