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

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

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

Замечания

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

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

Неизвестные значения разрешены для имен свойств, а драйвер JDBC не проверяет конфиденциальность регистра.

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

Свойства

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

Свойство
Тип
По умолчанию.
Description
accessToken

Строка

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

Строка

null
(Версия 12.4+) Имя класса обратного вызова, реализующего обратный вызов, который будет использоваться с обратным вызовом маркера доступа.
applicationIntent

Строка

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

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

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

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

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

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

Строка

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

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

Используйте ActiveDirectoryPassword (версия 6.0+) для подключения к SQL с помощью имени и пароля субъекта Microsoft Entra.

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

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

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

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

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

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

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

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

Сведения о настройке проверки подлинности Microsoft Entra см. в разделе "Использование проверки подлинности Microsoft Entra".
authenticationScheme

Строка

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

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

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

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

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

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

boolean
["true" | "false"]

false
(Версия 12.6+) Флаг, указывающий, должен ли драйвер вычислять точность для входных данных BigDecimal, а не использовать максимально допустимое значение для точности (38).
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,
database

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

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

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

Строка
["datetime" | "datetime2" | "datetimeoffset"]

datetime2
(Версия 12.2+) Тип данных SQL, используемый для параметров метки даты и времени Java.

При подключении к SQL Server 2016 или более поздней версии и взаимодействии с устаревшими значениями datetime клиенты могут воспользоваться установкой свойства на datetime, так как этот параметр устраняет проблемы с преобразованием на стороне сервера между значениями datetime и datetime2. Дополнительные сведения см. в статье "Адресация даты и времени на дату 2016 преобразования" начиная с SQL Server 2016
delayLoadingLobs

boolean
["true" | "false"]

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

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

boolean
["true" | "false"]

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

boolean
["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, AAS и NONE (NONE поддерживается только в версии 11.2 и выше).

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

Строка

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

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

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

В версии 11.2.0 и выше для encrypt был изменен тип boolean на string, что обеспечивает поддержку TDS 8.0, если свойство имеет значение strict.
failoverPartner

Строка

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

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

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

boolean
["true" | "false"]

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

Строка

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

org.ietf.jgss.GSSCredential

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

Этот параметр следует использовать с интегрированной безопасностью как 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

boolean
["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, необходимо предоставить имя пользователя и пароль.
ipaddresspreference

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

IPv4First
Предпочтительный тип IP-адресов, используемый клиентским приложением.

При использовании IPV4First драйвер сначала проходит по IPv4-адресам. Если не удалось подключиться ни к одному IPv4-адресу, драйвер попытается использовать IPv6-адреса при их наличии.

При использовании IPV6First драйвер сначала проходит по IPv6-адресам. Если не удалось подключиться ни к одному IPv6-адресу, драйвер попытается использовать IPv4-адреса при их наличии.

При использовании UsePlatformDefault драйвер проходит по всем IP-адресам в их первоначальных заказах из разрешения DNS.
jaasConfigurationName

Строка

SQLJDBCDriver
(версия 6.2+) Каждое подключение к SQL Server может использовать собственное имя конфигурации входа JAAS для установления подключения Kerberos. Имя записи конфигурации можно передать через это свойство. Это предназначено для использования при создании файла конфигурации Kerberos. По умолчанию драйвер ищет имя SQLJDBCDriver.

Если внешняя конфигурация не найдена, драйвер устанавливает useDefaultCcache = true для виртуальных машин IBM JVMs и 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 указывает допустимый идентификатор клиента приложения Microsoft Entra.

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

Строка

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

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

boolean
["true" | "false"]

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

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

INT

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

Кроме того, оператор.setQueryTimeout() можно использовать для задания времени ожидания запроса для определенных инструкций. Значение может быть равным 0 — время ожидания отсутствует.
loginTimeout

INT
[0..65535]

30 (версия 11.2 и более поздние версии)
15 (версия 10.2 и ниже)
Время в секундах, по истечении которого драйвер инициирует превышение времени ожидания неудачного подключения. Нулевое значение указывает, что время ожидания по умолчанию — это время ожидания системы по умолчанию, которое составляет 30 секунд по умолчанию в версии 11.2 и выше и 15 секунд по умолчанию в версии 10.2 и ниже. Ненулевое значение — это количество секунд, которое драйвер должен ждать до истечения времени ожидания сбоя подключения.

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

Строка

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

Строка

null
(не рекомендуется) (Версия 7.2+) Идентификатор клиента управляемого удостоверения (MSI), используемый для получения accessToken для установления соединения с режимом проверки подлинности ActiveDirectoryManagedIdentity или 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.

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

INT
[0..65535]

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

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

Строка

prepexec
(Версия 11.2.0 и выше) Определяет, какой базовый метод подготовки драйвер будет использовать с подготавливаемыми инструкциями.

Задайте значение prepare, чтобы использовать sp_prepare в качестве метода подготовки. В результате будет выполнен отдельный начальный обмен данными с базой данных для подготовки инструкции без начальных значений, которые база данных должна учитывать в плане выполнения. Задайте значение prepexec, чтобы использовать sp_prepexec в качестве метода подготовки. Этот метод объединяет действие подготовки с первым выполнением, уменьшая количество круговых путей. Он также предоставляет базе данных начальные значения параметров, которые база данных может учесть в плане выполнения.
queryTimeout

INT

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

Строка

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

boolean
["true" | "false"]

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

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

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

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

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

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

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

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

boolean
["true" | "false"]

true
Если свойство 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.

Изменение этого значения может повлиять на сортировку результатов из базы данных. Различия сортировки обусловлены различными правилами сортировки для юникодов и символов, отличных от Юникода.
sendTemporalDataTypes...
AsStringForBulkCopy

boolean
["true" | "false"]

true
(Начиная с версии 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

boolean
["true" | "false"]

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

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

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

Дополнительную информацию о том, как Microsoft JDBC Driver для SQL Server настраивает значения java.sql.Time перед их отправкой на сервер, смотрите в статье Настройка отправки значений java.sql.Time на сервер.
serverCertificate
server

Строка

null
(Версия 11.2.0 и выше) Путь к файлу сертификата сервера. Используется для проверки, если для параметра encrypt задано значения strict. Драйвер поддерживает файлы сертификатов, использующие формат PEM.
serverName,
server

Строка

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

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

boolean
["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

boolean
["true" | "false"]

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

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

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

Строка

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

Строка

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

boolean
["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-home>/lib/security/jssecacerts.

Файл <java-home>/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

boolean
["true" | "false"]

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

По умолчанию эта функция выключена. Для включения этого свойства установите значение "true".

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

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

boolean
["true" | "false"]

false
(Версия 12.6+) Пометка, чтобы указать, должен ли драйвер создать GSSCredential от имени пользователя для использования собственного API GSS-API для проверки подлинности Kerberos.
useDefaultJaasConfig

boolean
["true" | "false"]

false
(Версия 12.6+) Если приложение существует вместе с библиотеками, которые настраивают JAAS на уровне системы, установите это значение true, позволяет драйверу использовать ту же конфигурацию для выполнения проверки подлинности Kerberos.
useFlexibleCallableStatements

boolean
["true" | "false"]

true
(Версия 12.6+) Если задано значение true, позволяет выполнять настройку параметров инструкций с любым сочетанием индексов или имен параметров. Также позволяет задать эти параметры в порядке, отличном от того, что находится в определении sproc. Оба из них возможны с помощью дополнительного поиска метаданных параметров.

Если задано значение false, установка параметров должна выполняться с именами индексов или параметров, но не одновременно. Они также должны быть заданы в том же порядке, что и в определении подготовленной инструкции. Если этот параметр имеет значение false, не запускается поиск дополнительных метаданных, упоминание выше.
useFmtOnly

boolean
["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.

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

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

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

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

boolean
["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