Мне нужно подключиться к MS SQL Server 2008 r2, используя безопасную связь. Я смог сделать то же самое, используя следующую строку подключения:
jdbc:sqlserver://<<db server name>>:1433;databaseName=<<db name>>;selectMethod=cursor;encrypt=true;trustServerCertificate=false;integratedSecurity=false;trustStore=<<path to my trust store>>;trustStorePassword=<<password>>
На сервере БД я использовал Configuration Manager, чтобы указать используемый сертификат и включить «Принудительное шифрование». Диспетчер конфигурации SQL Server -> Сетевая конфигурация SQL Server -> Протоколы для <> - Щелкните правой кнопкой мыши -> Свойства -> Принудительное шифрование и сертификат
однако я могу подключиться к той же БД без указания encrypt = true, то есть со следующим URL:
jdbc:sqlserver://<<db server name>>:1433;databaseName=<<db name>>;selectMethod=cursor;
Меня беспокоит то, что, когда SQL Server настроен для безопасного соединения, он не должен отклонять / игнорировать незашифрованное соединение. Или мне нужно выполнить дополнительную настройку, чтобы сервер БД принимал только безопасные соединения
Спасибо и привет P Manchanda
Нет. Согласно документации, соединение будет зашифрованным.
Если для параметра «Принудительное шифрование» для компонента Database Engine установлено значение «ДА», все обмены данными между клиентом и сервером шифруются независимо от того, отмечен ли параметр «Шифрование соединения» (например, из SSMS) или нет. Вы можете проверить это с помощью следующего заявления DMV.
Все очень просто - настройка строки подключения игнорируется.
Это можно проверить на сервере через:
USE master
GO
SELECT encrypt_option FROM sys.dm_exec_connections
GO