MongoDB账户管理

  • 说明

    • 默认情况下,mongod也是没有管理员账户,除非你在admin数据库中使用db.createUser()命令添加了管理员帐号,且使用–auth参数启动mongod,否则在数据库中任何人都可以无需认证执行所有命令
  • 创建账号:

    • db.createUser({user:"testAdmin",pwd:"123456wangchangc",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
    • 账号角色
      • 数据库用户角色:read、readWrite;
      • 数据库管理角色:dbAdmin、dbOwner、userAdmin;
      • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
      • 备份恢复角色:backup、restore;
      • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
      • 超级用户角色:root
      • 内部角色:__system
    • 常用账号查看命令
      • 查看用户自定义角色权限:db.runCommand({rolesInfo:1})
      • 查询所有角色权限: db.runCommand({rolesInfo:1, showBuiltinRoles:true})
      • 查看某个角色的权限: db.runCommand({rolesInfo:"<rolename>"})
      • 查询其他数据库中指定的角色权限:db.runCommand({rolesInfo:{role:<roelename>",db:"<dbname>"}})
  • 重启生效:

    • 创建账号后,需要重启进行生效:关闭服务kill, 启动服务的前打开auth:true
  • 登录并认证

    • db.auth("testAdmin2","123456wangchangc")
    • mongo -utestAdmin2 -p'123456wangchangc' --port 27017
  • 删除用户:

    • db.dropUser("<username>")
  • 修改密码:

    • db.changeUserPassword("<UserName>","<newPassword>")
  • 验证密码/切换账户:

    • db.auth("<userName>","<password>")
  • 副本集,副本间通信

    • 需要通过相同的KEY文件通信
    • 生成KEY文件: openssl rand -base64 90 -out ./mongo.keyfile
    • 修改权限 chmod 400 ./mongo.keyfile,并发送到所有副本节点的mongo目录下
    • 更新conf: keyFile: /export/data/mongo/mongo.keyfile
    • 重启所有副本实例生效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值