我需要使用安全通信连接到 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
不。根据文档,它将具有加密连接。
当数据库引擎的强制加密选项设置为 YES 时,无论是否选中“加密连接”选项(例如来自 SSMS),客户端和服务器之间的所有通信都是加密的。您可以使用以下 DMV 语句进行检查。
就这么简单——您的连接字符串设置被忽略。
可以通过以下方式在服务器上进行检查:
USE master
GO
SELECT encrypt_option FROM sys.dm_exec_connections
GO