配置为安全 (SSL) 连接的 MS SQL Server 允许从 JDBC 客户端进行非安全连接

配置为安全 (SSL) 连接的 MS SQL Server 允许从 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>>

在数据库服务器上,我使用配置管理器指定要使用的证书并启用“强制加密”SQL Server配置管理器-> SQL Server网络配置-> <> 的协议 - 右键单击​​-> 属性-> 强制加密和证书

但是,我无需指定“encrypt = true”即可连接到同一个数据库,网址如下:

jdbc:sqlserver://<<db server name>>:1433;databaseName=<<db name>>;selectMethod=cursor;

我的困惑是,当 SQL Server 已配置为安全连接时,它不应该拒绝/忽略非加密连接吗?或者我需要进行额外的配置,以便数据库服务器仅接受安全连接

谢谢并问候 P Manchanda

答案1

不。根据文档,它将具有加密连接。

查看http://social.msdn.microsoft.com/Forums/sqlserver/en-US/bde679d9-ff83-4fa7-b402-42e336a97106/force-encryption-on-sql-server-not-working

当数据库引擎的强制加密选项设置为 YES 时,无论是否选中“加密连接”选项(例如来自 SSMS),客户端和服务器之间的所有通信都是加密的。您可以使用以下 DMV 语句进行检查。

就这么简单——您的连接字符串设置被忽略。

可以通过以下方式在服务器上进行检查:

USE master
GO
SELECT encrypt_option FROM sys.dm_exec_connections
GO

相关内容