Docker 安装sql server 登陆失败

错误:

Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate]. Sqlcmd: Error: Microsoft ODBC Driver 18 for SQL Server : Client unable to establish connection. For solutions related to encryption errors, see https://go.microsoft.com/fwlink/?linkid=2226722

遇到这个错误通常是因为 SQL Server 客户端尝试与 SQL Server 建立安全连接时,无法验证服务器提供的证书。SQL Server 容器默认会生成一个自签名证书,而这个证书可能不会被客户端信任,导致连接失败。以下是几种解决方法:

方法 1: 禁用证书验证

对于开发或测试环境,你可以通过禁用证书验证来绕过这个问题。请注意,这种方法在生产环境中不推荐使用,因为它会降低安全性。

使用 sqlcmd 连接时禁用证书验证
sqlcmd -S localhost -U sa -P 'YourStrong!Passw0rd' -C

这里的 -C 参数告诉 sqlcmd 忽略证书验证错误。

方法 2: 使用自定义证书

为了提高安全性,你可以为 SQL Server 配置一个由受信任的 CA(证书颁发机构)签发的证书。

  1. 生成或获取证书

    • 你可以从一个受信任的 CA 获取证书,或者使用 OpenSSL 生成一个自签名证书。
  2. 将证书文件复制到 SQL Server 容器中

    • 使用 docker cp 命令将证书文件复制到容器中。
  3. 配置 SQL Server 使用该证书

    • 进入容器内部,使用 SQL Server 配置管理器或其他工具配置 SQL Server 使用新的证书。

方法 3: 信任自签名证书

如果你使用的是自签名证书,可以将其添加到客户端的信任证书列表中。

  1. 导出自签名证书

    • 从 SQL Server 容器中导出自签名证书。你可以进入容器并使用 openssl 工具导出证书。
  2. 将证书导入客户端的信任存储

    • 在 Windows 上,你可以使用 certmgr.msc 导入证书。
    • 在 Linux 上,你可以将证书添加到 /etc/ssl/certs 目录,并更新证书索引。

方法 4: 使用 mssql-conf 配置 SQL Server

如果你有权限访问 SQL Server 容器,可以使用 mssql-conf 工具来配置 SQL Server 的网络设置,包括证书。

  1. 进入容器

    docker exec -it sqlserver1 /bin/bash
  2. 运行 mssql-conf

    /opt/mssql/bin/mssql-conf set network.ssl 0

方法 5: 使用环境变量配置 SQL Server

你也可以在启动容器时通过环境变量来配置 SQL Server 使用特定的证书。

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourStrong!Passw0rd' \-e 'MSSQL_TLS_CERTIFICATE=/path/to/your/certificate.pem' \-e 'MSSQL_TLS_KEY=/path/to/your/privatekey.pem' \-p 1433:1433 --name sqlserver1 -d mcr.microsoft.com/mssql/server:2019-latest

这里的 MSSQL_TLS_CERTIFICATEMSSQL_TLS_KEY 环境变量指定了证书和私钥的路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/448123.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5 TimeLine入门

UE5 TimeLine入门 时间轴曲线 共计三个关键帧(0,0)(1.5,10) (3,0) 蓝图 1.按下空格键执行。 2.时间轴TimeLine函数。 3.动画播放结束后执行。 4.每一帧都执行。

单片机原理及应用笔记:单片机的结构原理与项目实践

作者介绍 李婷婷,女,银川科技学院计算机与人工智能学院,2022级计算机与科学技术9班本科生,单片机原理及应用课程第五组。 指导老师:王兴泽 电子邮箱:365349930qq.com 前言 本篇文章是参考《单片机原理…

rk3568 , rk3588 , rknpu2 sdk , rknn-toolkit2, rknn-toolkit2-lite 的了解

rknpu2 sdk 与 rknn-toolkit 的区别。 网上的截图: 总结: rknpu2 是针对 C接口的, rknn toolkit2 是针对 Python接口的。 至于 连不连板, 是不是 拷贝, 那不重要。 然后是 rknn rootlkit2 与 rknn toolkit2 li…

数据结构算法题:栈与队列的使用(一)

目录 用队列实现栈题目解题思路代码实现创建栈的结构体栈的初始化入栈出栈获取栈顶数据判断栈是否为空销毁栈 用队列实现栈 题目 题目描述: 示例: 解题思路 题目要求使用两个队列实现栈的入栈、出栈、获取栈顶元素、检查栈是否为空栈的基本操作。 …

答题pk小程序的技术特点和性能优势分析

答题小程序是一种在移动设备上运行的应用程序,旨在提供各种类型的答题体验。以下是答题小程序的一些特点和优势: 一、特点 多样化的题目类型: 包括选择题、填空题、判断题等常见题型,还可能有简答题、论述题等更具挑战性的题型。…

健康推荐系统:SpringBoot技术实现

3系统分析 3.1可行性分析 通过对本基于智能推荐的卫生健康系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于智能推荐的卫生健康系统采用SSM框架&#…

Spire.PDF for .NET【页面设置】演示:在 C#/VB.NET 中创建 PDF 小册子

当人们打印大型 PDF 文档时,PDF 小册子非常有用。它在书籍、报纸和杂志编辑中特别受欢迎。本节将介绍一种通过C#、VB.NET 中的.NET PDF组件创建 PDF 小册子的非常简单的方法。 Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作…

[含文档+PPT+源码等]精品基于django实现的原生Andriod天气信息的着装搭配系统

基于Django实现的原生Android天气信息的着装搭配系统背景,可以从以下几个方面进行详细阐述: 一、技术背景 Django框架: Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。Django框架具有强大的数据库抽象层、…

深入了解EasyNVR及EasyNVS,EasyNVR连接到EasyNVS当显示授权超时如何解决?又因为什么原因?

我们先来了解NVR批量管理软件/平台EasyNVR,它深耕市场多年,为用户提供多种协议,兼容多种厂商设备,包括但不限于支持海康,大华,宇视,萤石,天地伟业,华为设备。 NVR录像机…

14.JVM对象创建与内存分配机制深度剖析

一、对象的创建 1.类加载检查 当虚拟机接受到一条new指令时,会去检查这个指令的参数是否能在常量池种定位到一个符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。如果没有则进行类的加载过程; 2.分配内存 在类加载检…

【Unity实战篇】 接入百度翻译,实现文本自动翻译功能

前言【Unity实战篇】 接入百度自动翻译,实现文本自动翻译功能一、获取百度翻译开发平台的APPID和密钥二、Unity中接入自动翻译功能三、Unity中实现自动翻译文本Text功能总结前言 日常在做项目的过程中,游戏本地化几乎已经成为必不可少的一步。本篇文章将演示怎样在Unity中接入…

数据质量差的代价是什么?

如今,许多数字企业都认为自己是数据驱动的。通过各种软件解决方案,数据无处不在,收集起来也非常方便,这使得企业能够被动地收集大量数据,并将其应用于决策制定。 然而,人们往往很容易在不考虑数据质量的情…

新手爬虫DAY1

这个错误信息表明在你的Python程序中,re.search() 函数没有找到预期的匹配项,因此返回了 None。当你尝试在 None 对象上调用 group(1) 方法时,Python 抛出了一个 AttributeError。 具体来说,错误发生在 pc.py 文件的第6行&#x…

【实战篇】用SkyWalking排查线上[xxl-job xxl-rpc remoting error]问题

一、组件简介和问题描述 SkyWalking 简介 Apache SkyWalking 是一个开源的 APM(应用性能管理)工具,专注于微服务、云原生和容器化环境。它提供了分布式追踪、性能监控和依赖分析等功能,帮助开发者快速定位和解决性能瓶颈和故障。…

excel筛选多个单元格内容

通常情况下,excel单元格筛选时,只筛选一个条件,如果要筛选多个条件,可以如下操作: 字符串中间用空格分隔就行。

IDEA中git如何快捷的使用Cherry-Pick功能

前言 我们在使用IDEA开发时,一般是使用GIT来管理我们的代码,有时候,我们需要在我们开发的主分支上合并其他分支的部分提交代码。注意,是部分,不是那个分支的全部提交,这时候,我们就需要使用Che…

使用OpenCV实现基于FisherFaces的人脸识别

引言 随着人工智能技术的发展,人脸识别已经成为日常生活中不可或缺的一部分。在众多的人脸识别算法中,FisherFaces 方法因其简单易用且具有良好的识别效果而备受青睐。本文将详细介绍如何使用Python和OpenCV库实现基于FisherFaces的人脸识别系统&#x…

【SpringBoot】13 XML格式的请求和响应

介绍 可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的子集,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 可扩展性良好,内容与形式分离,遵循严格的语法…

OPC UA与PostgreSQL如何实现无缝连接?

随着工业4.0的推进,数据交换和集成在智能制造中扮演着越来越重要的角色。OPC UA能够实现设备与设备、设备与系统之间的高效数据交换。而PostgreSQL则是一种强大的开源关系型数据库管理系统,广泛应用于数据存储和管理。如何将OPC UA与PostgreSQL结合起来&…

【力扣刷题实战】合并两个有序链表

大家好,我是小卡皮巴拉 文章目录 目录 力扣题目:合并两个有序链表 题目描述 示例 1: 示例 2: 示例 3: 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C语言) 兄弟们共勉…