MS SQL Server, настроенный для безопасного (SSL) соединения, допускает небезопасное соединение из JDBC-клиента
Мне нужно подключиться к 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 Манчанда
1 ответ
Нет. Согласно документации, он будет иметь зашифрованное соединение.
Когда для параметра Force Encryption для компонента Database Engine установлено значение YES, все соединения между клиентом и сервером шифруются независимо от того, включена ли опция "Шифрование соединения" (например, из SSMS) или нет. Вы можете проверить это, используя следующую инструкцию DMV.
Просто так - ваша настройка строки соединения игнорируется.
Это можно проверить на сервере через:
USE master
GO
SELECT encrypt_option FROM sys.dm_exec_connections
GO