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

相关推荐
网安小白的进阶之路1 小时前
A模块 系统与网络安全 第四门课 弹性交换网络-2
网络·安全·web安全·系统安全·交换机
安全系统学习1 小时前
网络安全之RCE分析与利用详情
服务器·网络·安全·web安全·系统安全
武汉唯众智创1 小时前
网络安全实训室建设方案全攻略
网络·安全·web安全·网络安全·网络安全实训室·网络安全实验室
weixin_472339461 小时前
网络安全攻防:文件上传漏洞的深度解析与防御实践
安全·web安全
雪兽软件1 小时前
2025 年网络安全与人工智能发展趋势
人工智能·安全·web安全
Hellyc2 小时前
基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
java·数据库·设计模式·rocketmq
lifallen2 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
小黄人20253 小时前
自动驾驶安全技术的演进与NVIDIA的创新实践
人工智能·安全·自动驾驶
CS创新实验室3 小时前
筑牢 AIGC 安全防线:警惕提示词注入攻击
安全·大模型·aigc·提示词·提示词注入