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

相关推荐
夜光小兔纸3 分钟前
SQL Server 查询所有表数据量
数据库·sql·sql server
张紫娃9 分钟前
Spring @Async 典型用法
java·数据库·sql
努力的小郑19 分钟前
Elasticsearch 批量创建索引实践与优化建议
数据库·elasticsearch
甜甜的资料库21 分钟前
基于ssm智慧乡村旅游服务平台微信小程序源码数据库文档
数据库·微信小程序·旅游
旷野说1 小时前
MongoDb 有必要分库么
数据库·mongodb
安全系统学习1 小时前
网络安全之任意文件读取利用
算法·安全·web安全·网络安全·哈希算法
isNotNullX2 小时前
什么是数据清洗?数据清洗有哪些步骤?
大数据·数据库·数据仓库·数据治理·元数据
雾林小妖3 小时前
Python+pymysql中select count(*)/select *使用方式
数据库·sql
你是橙子那我是谁3 小时前
Redis的list的底层原理
数据库·redis·list
合方圆~小文3 小时前
20倍光学镜头怎么实现20+20倍数实现
数据库·人工智能·硬件工程