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

相关推荐
寒月霜华20 小时前
JavaWeb后端-MySQL
数据库·mysql
Fuly102421 小时前
大模型的记忆与管理及长期记忆实现方式
数据库·人工智能·rag
weixin_3077791321 小时前
C#程序实现将Teradata的存储过程转换为Azure Synapse Dedicated SQL pool的存储过程
数据库·数据分析·c#·云计算·azure
折翼的恶魔21 小时前
SQL 189 统计有未完成状态的试卷的未完成数和未完成率
数据库·sql
yangmf204021 小时前
如何使用 INFINI Gateway 增量迁移 ES 数据
大数据·数据库·elasticsearch·搜索引擎·gateway
网硕互联的小客服1 天前
SSD和HDD存储应该如何选择?
linux·运维·服务器·网络·安全
wanhengidc1 天前
服务器在企业中的作用与价值
运维·服务器·arm开发·安全·智能手机·玩游戏
运维李哥不背锅1 天前
Ansible 的条件语句与循环详解
数据库·ansible
曾凡宇先生1 天前
OpenEuler中mysql这是在执行 MySQL 密码重置操作时出现的 “找不到mysqld_safe命令” 的错误场景。
数据库·mysql
方二华1 天前
6 mysql源码中的查询逻辑
数据库·mysql