SQLserver 数据库连接出现[DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error
新装的windows server 2019操作系统,数据库安装的sqlserver 2019
使用之前已经开发好的正常使用的程序
在连接数据库的时候出现如下错误
问题发生原因
经过研究,原因是我开发的客户端是使用TLS 1.0协议进行数据库通信。如果禁用此协议,数据库连接将无法正常工作。
如何避免
在服务器上执行以下步骤来启用TLS 1.0:
- 打开Windows控制面板—选择“系统和安全”—点击“管理工具”—打开“本地安全策略”。
- 从左侧边栏中选择“本地策略”>“安全选项”,然后双击“系统加密: 将 FIPS 兼容算法用于加密、哈希和签名”
- 在显示的窗口中选择“已启用”单选按钮,然后单击“确定”保存更改。
- 打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server,将DisabledByDefault设置为0,Enabled设置为1。
补充:
第二天运行其他程序发现这个错误
然后将前三步做的操作还原回去,数据库也能访问,程序也能运行了
所以前三步是不需要的,只要修改注册表即可