美文网首页
【mongoDB】mongoDB修改业务账号、超管账号密码通用脚

【mongoDB】mongoDB修改业务账号、超管账号密码通用脚

作者: Bogon | 来源:发表于2024-03-14 10:26 被阅读0次

    MongoDB的权限管理
    mongodb的用户权限是跟着数据库走的,除了超级管理员外,其他管理员只能管理自己的库。

    user 普通业务账号
    oldPasswd 普通业务账号旧密码
    newPasswd 普通业务账号新密码

    superUser 超管用户
    oldSuperPasswd 超管用户旧密码
    newSuperPasswd 超管用户新密码

    $ cat renew_mongo_passwd.sh

    #!/bin/bash
      
    # 获取该mongoDB实例所有库名(排除 local 、admin 库)
    dbs=`echo -e "show dbs"  | mongo  --quiet  --host xx.xx.xx.xx --port 27017  -u superUser  -p 'oldSuperPasswd' --authenticationDatabase admin | awk '{print $1}'  | grep  -vwE "local|admin"`
     
    # 手动确认一下所有库名,避免遗漏
    echo $dbs | tr ' ' '\n'
    
    for db in  ${dbs}
     do
      echo ##### $db #####
    
    # 输出各业务库用户
      echo -e "use $db;\n show users" |  mongo  --quiet  --host xx.xx.xx.xx --port 27017  -u oldSuperUser  -p 'oldSuperPasswd' --authenticationDatabase admin
      
    # 用超管用户身份进入各自业务库,修改业务账号密码 
      echo -e "use $db;\n db.changeUserPassword('user','newPasswd')" | mongo  --quiet  --host xx.xx.xx.xx --port 27017  -u superUser  -p 'oldSuperPasswd' --authenticationDatabase admin
         
    # 验证业务库用户密码认证(所有业务库用户可以在admin库做认证验证登陆,切到对应库做认证)  
      echo -e "use $db;\n db.auth('user','newPasswd')" | mongo  --quiet  --host xx.xx.xx.xx --port 27017  -u superUser  -p 'oldSuperPasswd' --authenticationDatabase admin
    done
    
    
    # 用超管用户身份进入admin库,超管用户密码 
    echo -e "use admin;\n db.changeUserPassword('superUser','newSuperPasswd')" | mongo  --quiet  --host xx.xx.xx.xx --port 27017  -u superUser  -p 'oldSuperPasswd' --authenticationDatabase admin
    
    # 在admin库验证超管新密码
    echo -e "use admin;\n db.auth('superUser','newSuperPasswd')" | mongo  --quiet  --host xx.xx.xx.xx --port 27017  -u superUser  -p 'newSuperPasswd' --authenticationDatabase admin
    

    相关文章

      网友评论

          本文标题:【mongoDB】mongoDB修改业务账号、超管账号密码通用脚

          本文链接:https://www.haomeiwen.com/subject/xgqwzdtx.html