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

相关推荐
聆风吟º9 小时前
金仓数据库:以 “多模融合” 重塑国产文档数据库新标杆
数据库·重构·kingbasees
子沫20209 小时前
使用mybatis-plus、mybatis插入数据库时加密,查询数据库时解密,自定义TypeHandler 加解密使用
数据库·mybatis·mybatis-plus
清风拂山岗 明月照大江9 小时前
MySQL运维
运维·数据库·mysql
小伍_Five10 小时前
《NoSQL数据库技术与应用(黑马程序员)》课后习题答案完整版
数据库·nosql
oas110 小时前
山东大学软件学院2024-2025非关系型数据库期末考试(限选)
数据库·nosql
crossaspeed10 小时前
MySql三大日志——(八股)
数据库·mysql
我是廖志伟10 小时前
MongoDB NoSQL数据库核心概念解析
mongodb· nosql· database management
Modeler·X10 小时前
关系型与非关系型数据库终极对决
数据库·人工智能
梓潇涵枫11 小时前
pg数据库一键迁移脚本
数据库
duyinbi751711 小时前
改进YOLO13模型:C3k2与PPA优化在油田工人安全装备检测与行为识别中的应用
人工智能·安全·目标跟踪