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.mzph.cn/web/55768.shtml

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

相关文章

【virtuoso】sp测电阻

电路测量原理: 1. 电路原理图 2. 仿真设置 点击select,在原理图选择port设置sp扫频范围 3. plot图像 3.1 plot电阻图像 由公式可得,电阻值为阻抗的实部,所以 1. 选择 ZP 2. 绘制real 3. 点击Z11 4. 即可看到电阻值 3.2 plot电容图…

C++第七讲:STL--list的使用及模拟实现

C第七讲:STL--list的使用及模拟实现 1.list的使用1.1list是什么1.2构造、析构、赋值运算符重载1.3迭代器1.4empty、size、max_size1.5front、back1.6assign -- 代替1.7push_back和emplace_back1.8emplace1.9insert、erase、swap、resize、clear1.10find1.11splice1.…

CSDN Markdown 编辑器语法大全

Markdown 是一种轻量级标记语言,它以简洁、易读易写的特点,被广泛应用于技术文档、博客文章、笔记等领域。CSDN 的 Markdown 编辑器为用户提供了丰富的功能,让用户能够轻松地创建格式规范、内容丰富的文档。以下是一份详细的 CSDN Markdown 编…

大数据治理--法规遵从与隐私保护

目录 ​编辑一、国际及地方数据保护法规 1.1 国际数据保护法规 1.1.1 欧盟《通用数据保护条例》(GDPR) 1.1.2 美国《加州消费者隐私法案》(CCPA) 1.1.3 中国《网络安全法》及《个人信息保护法》 1.2 地方数据保护法规 二、…

KClass-关于kotlin中的反射

override val responseType: KClass<SetOperationModeResponse> SetOperationModeResponse::class,这段代码的含义&#xff1a; responseType 是一个只读属性&#xff08;val&#xff09;&#xff0c;它的类型是 KClass<SetOperationModeResponse>。KClass<T&…

深入解析缓存技术

文章目录 1. 缓存基本原理2. 缓存更新机制2.1 Cache Aside模式2.2 Read/Write Through2.3 Write Behind Caching2.4 对比总结 3. 缓存数据过期策略3.1 最近最少使用&#xff08;Least Recently Used, LRU&#xff09;算法3.2 先进先出&#xff08;First-In-First-Out, FIFO&…

OpenCV高级图形用户界面(10)创建一个新的窗口函数namedWindow()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 创建一个窗口。 函数 namedWindow 创建一个可以作为图像和跟踪条占位符的窗口。创建的窗口通过它们的名字来引用。 如果已经存在同名的窗口&am…

linux线程 | 全面理解同步与互斥 | 同步

前言&#xff1a;本节内容主要讲解linux下的同步问题。 同步问题是保证数据安全的情况下&#xff0c;让我们的线程访问具有一定的顺序性。 线程安全就规定了它必须是在加锁的场景下的&#xff01;&#xff01;那么&#xff0c; 具体什么是同步问题&#xff0c; 我们加下来看看吧…

lesson01 Backtrader是什么

[Backtrader]专题连载 Backtrader是什么&#xff1f; Backtrader 是 2015 年开源的 Python 量化回测框架&#xff08;支持实盘交易&#xff09;。专注于为量化交易策略提供回测和实盘交易功能。它允许用户集中精力编写可复用的交易策略、指标和分析工具&#xff0c;而无需花费…

使用 Python 解析火狐浏览器的 SQLite3 数据库

使用 Python 解析火狐浏览器的 SQLite3 数据库 火狐浏览器&#xff08;Firefox&#xff09;使用 SQLite3 数据库来存储用户的各种数据&#xff0c;如书签、历史记录和下载记录等。在这篇文章中&#xff0c;我们将学习如何使用 Python 来解析这些 SQLite3 数据库。 准备工作 …

衡石分析平台系统分析人员手册-可视化报表仪表盘

仪表盘​ 仪表盘是数据分析最终展现形式&#xff0c;是数据分析的终极展现。 应用由一个或多个仪表盘展示&#xff0c;多个仪表盘之间有业务关联。 仪表盘编辑​ 图表列表​ 打开仪表盘后&#xff0c;就会看到该仪表盘中所有的图表。 调整图表布局​ 将鼠标移动到图表上拖动…

能源领域新政策,我们应该关注什么?

近日&#xff0c;国家发展改革委和国家能源局联合发布了《能源重点领域大规模设备更新实施方案》的通知。该方案指出&#xff0c;能源科技领域是大规模设备更新和消费品以旧换新行动实施的关键领域。 《方案》设定了到2027年&#xff0c;能源重点领域设备投资规模较2023年增长2…

CentOS 8 Stream环境下通过yum安装Mysql

1.在Mysql下载页面MySQL :: Download MySQL Community Server页尾 点击 “MD5 checksums and GnuPG signatures” 进入下一页面 2.打开下载yum repo文件页面 (MySQL :: Download MySQL Yum Repository) 3.点击"DownLoad"按钮&#xff0c;打开下载页面&#xff0c; 4.…

2012年国赛高教杯数学建模C题脑卒中发病环境因素分析及干预解题全过程文档及程序

2012年国赛高教杯数学建模 C题 脑卒中发病环境因素分析及干预 脑卒中&#xff08;俗称脑中风&#xff09;是目前威胁人类生命的严重疾病之一&#xff0c;它的发生是一个漫长的过程&#xff0c;一旦得病就很难逆转。这种疾病的诱发已经被证实与环境因素&#xff0c;包括气温和湿…

在元学习中,**1-shot**、**5-shot**、和**10-shot**等术语常用于描述少样本学习中的训练条件。这些术语的具体含义是:

在元学习中&#xff0c;1-shot、5-shot、和10-shot等术语常用于描述少样本学习中的训练条件。这些术语的具体含义是&#xff1a; 1-shot learning&#xff1a;表示模型在每个类别中只使用一个样本进行学习。这是一种极端的少样本学习情况&#xff0c;要求模型能够从非常少的数据…

如何利用kafka实现高效数据同步?

在我们之前的文章有详细介绍过Kafka的结构、特点和处理方式。具备告诉处理能力的kafka被利用在数据同步和数据传输上&#xff0c;今天来说下kafka是怎么实现高效的数据同步和传输。 一、可靠的数据传输 1. 持久性保证&#xff1a;Kafka 将数据持久化到磁盘上&#xff0c;即使在…

0基础学java值Day10(数组上)

一、数组的复制 1、直接复制数组 缺点&#xff1a;修改源数组&#xff0c;新数组也受到了影响 public static void main(String[] args){//原数组String[] names {"麻生希","椎名空","水菜丽"};//新数组String[] newNames names;//修改原数…

深度学习实战94-基于图卷积神经网络GCN模型的搭建以及在金融领域的场景

大家好,我是微学AI,今天给大家介绍一下深度学习实战94-基于图卷积神经网络GCN模型的搭建以及在金融领域的场景。文章首先介绍了GCN模型的原理及模型结构,随后提供了数据样例,并详细展示了实战代码。通过本文,读者可以深入了解GCN模型在金融场景下的应用,同时掌握代码的具…

wifi、热点密码破解 - python

乐子脚本&#xff0c;有点小慢&#xff0c;试过多线程&#xff0c;系统 wifi 连接太慢了&#xff0c;需要时间确认&#xff0c;多线程的话系统根本反应不过来。 也就可以试试破解别人的热点&#xff0c;一般都是 123456 这样的傻鸟口令 # coding:utf-8 import pywifi from pyw…

Spring Boot 应用程序的 Controller 层中定义一个处理 HTTP DELETE 请求的方法

这段代码展示了如何在一个 Spring Boot 应用程序的 Controller 层中定义一个处理 HTTP DELETE 请求的方法。下面是对这段代码的详细解释: 代码结构 @DeleteMapping("/users/{id}") public ResponseEntity<Void> deleteUser(@PathVariable Long id) {userSer…