当前位置: 首页 > news >正文

连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接

SQL Server

文章目录
      • 一. 前言
      • 二. 解决方案
        • 方案1
        • 方案2
      • 三. 总结
一. 前言

在《数据库原理》这门课的实验上,需要使用SQL Server,然后使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接,整理出来以下两种解决方案。

二. 解决方案

一共两种解决方案,如下所示:

方案1

首先是网上寻找到的第一种办法,就是在自己安装的JDK目录下找到java.security文件,然后打开这个文件。查询jdk.tls.disabledAlgorithms,然后将里面的3DES_EDE_CBC去掉,然后再使用旧的算法。

下面是我的电脑上的例子:

但是遗憾的是,这个解决办法没有解决我的问题。

方案2
  1. 连接数据库时,如果我们需要对在客户端与服务器之间发送的所有数据使用 TLS 加密,那么就需要设置encrypt=true,同时设置trustServerCertificate=trueMicrosoft JDBC Driver for SQL Server 将不验证SQL Server TLS 证书。 此设置常用于允许在测试环境中建立连接,如 SQL Server 实例只有自签名证书的情况。

  2. 连接数据库时,如果我们不想对在客户端与服务器之间发送的所有数据使用 TLS 加密,那么就需要设置encrypt=false.

操作方法如下:

String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=false";

OR

String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=true;trustServerCertificate=true";
三. 总结
  1. 修改java.secrity文件
  2. 在url后面加上encrypt=false或者encrypt=true;trustServerCertificate=true(推荐)

如果你在阅读本文中发现描述不够准确或有误的地方,还请给予我一定的反馈,大家一起学习进步!!!

相关文章:

  • 通俗易懂的浏览器事件循环指南(含async/await)
  • Linux提权之计划任务反弹shell提权(十一)
  • 【Viewer.js】vue3封装图片查看器
  • 【时时三省】(C语言基础)结构化程序设计方法
  • 二:前端发送POST请求,后端获取数据
  • Java并发 ThreadLocal 原理(详解)
  • c++中,什么时候应该使用mutable关键字?
  • Bash Shell控制台终端命令合集
  • C语言番外篇(3)------------>break、continue
  • 论文笔记:Autonomy-of-Experts Model
  • watchEffect 里有响应式依赖时并没有自动追踪
  • C++关键字之mutable
  • Tesseract OCR:起源、发展与完整使用指南
  • 多线程篇学习面试
  • 请谈谈 Vue 中的 key 属性的重要性,如何确保列表项的唯一标识?
  • 设计模式Python版 中介者模式
  • Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题
  • Linux系统管理与编程01:准备工作
  • vim 多个关键字高亮插件介绍
  • A. Jagged Swaps
  • 强沙尘暴压城近万名游客被困,敦煌如何用3小时跑赢12级狂风?
  • 五一车市消费观察:政策赋能、企业发力,汽车消费火热
  • 巴菲特股东大会十大金句:未来五年内可能有投资机会,快乐的人活得更久
  • 客场不敌蓉城遭遇联赛首败,申花争冠需要提升外援能力
  • 申活观察|咖香涌动北外滩,带来哪些消费新想象?
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单