mongodb账户操作

一、创建一个只读账号,具有所有库的查询权限


1、第一步:use admin
      第二步  执行脚本:
db.createUser( {user: "all_read02",pwd: "allread123",roles: [ 
  {role: "readAnyDatabase",db:"admin"},
  ],
  mechanisms : ["SCRAM-SHA-1"]
  }
  )
  
2、查看用户 db.system.users.find()
3、删除账号 db.dropUser('gao') 
4、修改密码 db.changeUserPassword("要修改密码的用户名","新密码")
5、修改用户角色(有问题)
        db.updateUser( "test1",
{
               roles:[
               {role:"read",db:"admin"}
              ]   ,
            pwd:"test1password"
}
)

二、所有数据库角色:

readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
总结:
MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。
切换到admin数据库,添加的账号才是管理员账号。
用户只能在用户所在数据库登录,包括管理员账号。
管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

三. 权限说明(基于角色的权限控制)


内置角色
数据库用户角色
 read: 只读数据权限 
readWrite:学些数据权限 
数据库管理角色
 dbAdmin: 在当前db中执行管理操作的权限 
dbOwner: 在当前db中执行任意操作 
userADmin: 在当前db中管理user的权限 
备份和还原角色
 backup 
restore 
夸库角色
 readAnyDatabase: 在所有数据库上都有读取数据的权限 
readWriteAnyDatabase: 在所有数据库上都有读写数据的权限 
userAdminAnyDatabase: 在所有数据库上都有管理user的权限 
dbAdminAnyDatabase: 管理所有数据库的权限 
集群管理
 clusterAdmin: 管理机器的最高权限 
clusterManager: 管理和监控集群的权限 
clusterMonitor: 监控集群的权限 
hostManager: 管理Server 
超级权限
 root: 超级用户


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值