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

相关推荐
qq_452396232 分钟前
第十篇:《Kafka 安全加固:SASL、SSL、ACL 与多租户隔离》
安全·kafka·ssl
Decay__1 小时前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Thanks_ks1 小时前
SQL 的 GROUP BY 与聚合函数:从会写 SELECT 到会做统计
数据库·sql·mysql·group by·数据统计·聚合函数·having
Decay__9 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
ppo_wu10 小时前
解决夸克网盘自动修改PDF打开方式的方法
经验分享·安全·网络安全
笃行35010 小时前
AI数据库的库内四层结构,KingbaseES 产品拆解
数据库
我是大猴子12 小时前
redis
数据库·redis·缓存
苏宸啊14 小时前
MySQL(一)
数据库·mysql
2603_9696948514 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
这个DBA有点耶15 小时前
库内语义构建 vs 外挂向量库:业务语义缺失,才是RAG“胡说八道”的根源
数据库·mysql·aigc