Настройка свойств подключения
Свойства строки подключения могут быть заданы различными способами.
В виде свойств имя=значение в URL-адресе подключения при подключении с помощью класса DriverManager. Синтаксис строки подключения описан в разделе Создание URL-адреса подключения.
В качестве свойств имя=значение в параметре Свойства метода Connect в классе DriverManager.
С помощью аргумента соответствующего метода задания свойств источника данных драйвера. Например:
datasource.setServerName(value) datasource.setDatabaseName(value)
Замечания
В именах свойств не учитывается регистр символов. Дублирующиеся имена свойств разрешаются в следующем порядке:
- аргументы API (например, имя пользователя и пароль);
- Коллекция свойств
- Последний экземпляр в строка подключения
Неизвестные значения разрешены для имен свойств, а драйвер 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. В противном случае возникает ошибка (необходимо указать свойства подключения). |
cacheBulkCopyMetadata boolean ["true" | "false"] false |
(Версия 12.8+) При использовании useBulkCopyForBatchInsert=true это свойство используется для определения драйвера, следует ли кэшировать метаданные целевого столбца на уровне подключения. Если задано значение true , убедитесь, что назначение не изменяется между массовыми вставками, так как драйвер не имеет способа обработки этого изменения. |
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 и более поздних версий шифрование было изменено с логического на строковое, что позволяет поддерживать TDS 8.0, если свойство задано как строгое. |
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 можно использовать для указания имени узла в ситуациях, когда имя или имена, используемые в сертификате, не совпадают с именем, переданным свойству serverName . При наличии совпадения параметр hostNameInCertificate не должен использоваться. В ситуациях, когда свойство hostNameInCertificate не указано или имеет значение NULL, драйвер Microsoft JDBC для SQL Server использует значение свойства serverName в URL-адресе подключения в качестве имени узла для проверки SSL-сертификата SQL Server. Примечание. Как описано в предыдущем абзаце, не рекомендуется задавать параметр hostNameInCertificate , если вы не сможете подтвердить имя или имена, в сертификате не совпадают с этими именами, переданными в параметре serverName . Примечание. Это свойство используется в сочетании со свойствами шифрования/проверки подлинности и свойством 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 , , 300K 400G )2. в процентах от максимальной кучи памяти (например, 10p , , 15pct 20percent ). |
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 в качестве метода подготовки. Установка prepareMethod этого значения приводит к отдельной начальной поездке в базу данных, чтобы подготовить инструкцию без каких-либо начальных значений для базы данных, учитываемой в плане выполнения. Задайте значение 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 используется вместо системного хранилища ключей JVM на основе TrustManager на основе хранилища ключей по умолчанию. |
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. |
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:
- Установка Maven в систему
- Перейдите на страницу драйвера GitHub.
- Скачайте файл pom.xml
- Для загрузки библиотеки и ее зависимостей выполните следующую команду Maven:
mvn dependency:copy-dependencies