MongoDB使用安全的sha256认证

背景:

使用MongoDB 3.2 仅支持默认SCRAM-SHA-1,不够安全需要使用SCRAM-SHA-256,但只有MongoDB4.0才支持。又因为3.2到4.0是大版本升级,云不支持在线升级,所以只能切换数据库做数据同步

步骤

  1. 申请一个新的MongoDB 4.0版本(4.0版本默认创建的用户都是sha256)

  2. 开启一个数据库迁移任务,数据库表迁移+全量迁移+增量迁移

迁移过程中,老账号仍然保持sha1的鉴权,如下图,所以要新建账号并且指定使用sha256的鉴权规则

  1. 创建用户指定sha256

    db.createUser({
    user: "appUser",
    pwd: "userPassword",
    roles: [{ role: "readWrite", db: "appdb" }],
    mechanisms: ["SCRAM-SHA-256"] // 指定SHA-2562,4
    })

  2. spring应用在连接串后加上?authMechanism=SCRAM-SHA-256即可,sdk会检测到要用sha256自动转换和mongodb服务器的密码对比。

    spring.data.mongodb.uri=mongodb://username:password@host:27017/database?authMechanism=SCRAM-SHA-256

切换后更新应用

待同步任务完全跑完,就可以停止任务,并且释放之前的mongodb

相关推荐
斐硕人几秒前
SQL滚动求和
数据库·sql·mysql·maxcompute
网安小白的进阶之路23 分钟前
B模块 安全通信网络 第一门课 园区网实现与安全-2-ACL
网络·安全
java_logo27 分钟前
GPUSTACK Docker 容器化部署指南
运维·mongodb·docker·云原生·容器·eureka·express
爬山算法27 分钟前
Redis(135)Redis的网络模型是什么?
网络·数据库·redis
L.EscaRC35 分钟前
Redis大Key与内存不足问题深度解析与应对策略
数据库·redis·缓存
雲烟1 小时前
Qt SQLite在I.mx8上使用问题
数据库·qt·i.mx8
TDengine (老段)1 小时前
TDengine 转换函数 CAST 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
苦瓜炒蛋挞2 小时前
小迪安全第二十二天-安全开发-PHP应用&数据库操作&留言板功能&第三方插件
数据库·网络安全·php·小迪安全
WayneJoon.H2 小时前
Java反序列化 CC7链分析
java·安全·网络安全·cc链·反序列化
chushiyunen2 小时前
redis命令 geo(对地理坐标的支持)
数据库·redis·缓存