SQLserver 数据库连接出现[DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error

新装的windows server 2019操作系统,数据库安装的sqlserver 2019

使用之前已经开发好的正常使用的程序

在连接数据库的时候出现如下错误
在这里插入图片描述

问题发生原因

经过研究,原因是我开发的客户端是使用TLS 1.0协议进行数据库通信。如果禁用此协议,数据库连接将无法正常工作。

如何避免

在服务器上执行以下步骤来启用TLS 1.0:

  1. 打开Windows控制面板—选择“系统和安全”—点击“管理工具”—打开“本地安全策略”。
  2. 从左侧边栏中选择“本地策略”>“安全选项”,然后双击“系统加密: 将 FIPS 兼容算法用于加密、哈希和签名”
    在这里插入图片描述
  3. 在显示的窗口中选择“已启用”单选按钮,然后单击“确定”保存更改。
    在这里插入图片描述
  4. 打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server,将DisabledByDefault设置为0,Enabled设置为1。
    在这里插入图片描述

补充:
第二天运行其他程序发现这个错误
在这里插入图片描述
然后将前三步做的操作还原回去,数据库也能访问,程序也能运行了
所以前三步是不需要的,只要修改注册表即可

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐