一、背景

1.需要将已有业务数据的复制集 replSet01 数据都导入到 新搭建的复制集replSet02 中

2.新搭建的复制集replSet02  超管用户密码跟源复制集replSet01 的密码都不一样

  1. 用新的复制集replSet02 的超管用户将原replSet01的数据导(admin库除外)入到 replSet02 ,不能导入admin库的原因是replSet02 的超管用户密码跟replSet01不同

  2. 将业务数据导入 replSet02后,用replSet02超管用户,将业务库中的用户全部删除,重新创建授权一遍,并验证

超管账号密码:  superUser/superPasswd

业务账号密码:  testUser/testPasswd

根据数据库权限最小化原则,复制集中的超管账号密码和业务账号密码应该不一样!

二、 脚本操作

删除用户重建

#!/bin/bashdbs="
testDB01
testDB02
testDB03
testDB04
"for db in  ${dbs}doecho ##### $db ###### 删除各业务库中业务用户echo -e "use $db;\n db.dropUser('testUser')" |  /path/to/bin/mongo  --quiet  --host=192.168.80.219  --port=27017  -u superUser  -p 'superPasswd' --authenticationDatabase=admin# 重新创建各业务库用户,授权 echo -e "use $db;\n db.createUser({user:'testUser',pwd:'testPasswd',roles:[{role:'readWrite',db:'$db'},{role:'dbAdmin',db:'$db'},{role:'userAdmin',db:'$db'}]})" |  /path/to/bin/mongo  --quiet  --host=192.168.80.219  --port=27017  -u superUser  -p 'superPasswd' --authenticationDatabase=admin# 输出各业务库用户 echo -e "use $db;\n show users" |  /path/to/bin/mongo  --quiet  --host=192.168.80.219  --port=27017  -u  superUser  -p 'superPasswd' --authenticationDatabase=admin# 验证业务库用户密码认证echo -e "use $db;\n db.auth('testUser','testPasswd')" |  /path/to/bin/mongo  --quiet  --host=192.168.80.219  --port=27017  -u superUser  -p 'superPasswd' --authenticationDatabase=admin
done

这种直接删除用户,重新创建的方式过于简单粗暴,对于授权复杂的用户可能就不太适用了

好的方式应该是,将原业务用户导入后,直接在新实例中修改密码,其他不变

修改用户密码

#!/bin/bashdbs='
testDB01
testDB02
testDB03
testDB04
'for  db in  ${dbs}doecho ##### $db ###### 用超管用户身份进入各自业务库,修改业务账号密码 echo -e "use $db;\n db.changeUserPassword('testUser','newPasswd'))" |  /path/to/bin/mongo  --quiet  --host=192.168.80.219  --port=27017  -u superUser  -p 'superPasswd' --authenticationDatabase=admin# 输出各业务库用户echo -e "use $db;\n show users" |  /path/to/bin/mongo  --quiet  --host=192.168.80.219  --port=27017  -u superUser  -p 'superPasswd' --authenticationDatabase=admin# 验证业务库用户密码认证  echo -e "use $db;\n db.auth('testUser','newPasswd')" |  /path/to/bin/mongo  --quiet  --host=192.168.80.219  --port=27017  -u superUser  -p 'superPasswd' --authenticationDatabase=admin
done

三、参考

json在线工具 
https://www.sojson.com

【mongoDB】mongoDB批量修改业务账号密码相关推荐

  1. windows域控上批量修改域账号密码

    目录 一.查询密码过期域账号信息 (一)根据OU组织架构查询密码过期账号 (二)查询域控所有密码过期账号 (三)导出dsquery查询的信息 二.批量修改过期域账号密码 (一)根据dsquery查询到 ...

  2. idea修改git账号密码

    idea修改git账号密码 一.方法1 1.在Terminal中输入git config user.name获取当前的用户名 2.打开控制面板–>用户账户–>凭证管理器–>windo ...

  3. 批量修改linux服务器密码,Linux下批量修改服务器用户密码方法步骤

    Linux下批量修改服务器用户密码方法步骤 密码快要过期.由于机器数量众多,因此采用批量修改密码的方式来进行处理. 下面是具体步骤: 1.配置ssh免key # ssh-keygen -t rsa - ...

  4. Windows批量修改服务器密码,expect批量修改linux服务器密码

    expect批量修改linux服务器密码 内容精选 换一换 批量修改弹性云服务器信息.当前仅支持批量修改云服务器名称,一次最多可以修改1000台.PUT /v1/{project_id}/clouds ...

  5. JAVA修改AD账号密码

    JAVA修改AD账号密码 今天正好做了这块,拿出来分享.以前在网上找到的都无法实现.代码内容不太规范,只是一个测试的用例 有什么问题可以联系我QQ:305493325. 一.生成JKS文件 1.下载A ...

  6. eclipse修改SVN账号密码

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) from:http://www.cnblogs.com/liaidai/p/5070208.html ecli ...

  7. mongodb忘记了admin的账号密码

    一开始的错误如下:发现创建一个db的username和pwd发现权限不够,就是使用admin来进行,结果发现admin的账号密码错误 Error:couldn't add user:command c ...

  8. 浪潮服务器修改ipmi账号密码,通过ipmitool批量修改服务器ipmi的syslog目标服务器IP地址与端口号...

    因syslog服务器IP地址变更需要,我们可能需要去修改服务器的ipmi里面的syslog服务器,但是如果手动修改的话费事费力还容易出错.如果不使用厂商自己的批量工具我们可以尝试通过ipmitool工 ...

  9. Powershell管理系列(二十八)PowerShell操作之修改AD账号密码

    -----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750 有一群友问,我有一个表格,里面有 ...

最新文章

  1. Android项目启动时短暂的黑屏白屏处理
  2. 学习MongoDB 二:MongoDB添加、删除、修改
  3. 【java下午茶系列】java三重奏之封装
  4. Win7备份的取消与磁盘空间恢复
  5. .net与mono的那些事
  6. linux可以打开浏览器嘛,Linux下怎样可以打开浏览器
  7. nlp中文文本摘要提取,快速提取文本主要意思
  8. python 文件分割 按大小_python处理分隔大文件
  9. typedef 深入剖析
  10. DataGirdView 常用操作
  11. javaweb 需要对表格建立实体类吗_如何采用java界面编程建立一个表格
  12. 少儿编程150讲轻松学Scratch(十一)-用Scratch算法给矩形工具填充颜色
  13. java ssh shell命令_java 通过ssh 执行命令
  14. ImportError: cannot import name ‘py_checkpoint_reader‘ from ‘tensorflow.pyth
  15. java 匿名内部类多态,下面这个简单的程序验证匿名内部类的多态属性,但出现错误。...
  16. linux qt 生成word报告_Qt 生成word、pdf文档
  17. 转载一篇JAVA面试题
  18. 情商高手比智商高手要可怕多了
  19. 制作自己的字体图标库
  20. Windows OpenGL 图像褐色

热门文章

  1. matlab 振动,基于matlab的振动系统仿真.doc
  2. 解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法。
  3. Axure 取色器的使用
  4. 华为设备配置策略路由引流到旁挂防火墙
  5. 2014年C++大会的嘉宾演讲稿开放下载
  6. 藏经阁(学习资料汇总)
  7. 说完了 xxl-job 的执行器原理,再来聊聊调度中心是如何调度任务的
  8. 一行一行的读取txt中文文本(解决乱码问题)
  9. 图像处理-离散傅里叶变换-数字图像处理第三版第四章内容
  10. lammps输出MSD(均方根位移)详解及示例教程