MongoDB认证授权原理和常用操作

参看网址:http://www.cnblogs.com/zhoujinyi/p/4610050.html

上面链接讲述的原理非常详细

mongo版本:3.6

常用操作:

##查看当前库下所有用户

show users

##查看所有系统中用户,尽量别直接修改此表

db.system.users.find().pretty()

#增加用户:

   db.createUser(

...     {

...       user: "1352",

...       pwd: "135137846",

...       roles: [

...          { role: "read", db: "test" }    

...       ]

...     }

... )

#删除用户:

db.dropUser("1354") #用户名有问题的话先删除在创建

##更新用户  

db.updateUser( "1352",

               {

                 roles : [

                           { role : "readWrite", db : "test"},

   {"role" : "dbAdmin","db" : "test"}

                         ]

                }

             )

##更改密码

db.changeUserPassword("用户名", "密码")

##授予权限

  db.grantRolesToUser("1352",[{ role : "userAdmin", db : "test"}])

##撤销权限

  db.revokeRolesFromUser("1352",[{ role : "userAdmin", db : "test"}])

##也可直接更新替换原有文档进行授权和撤销权限

  db.updateUser( "1352",

               {

                 roles : [

                           { role : "readWrite", db : "test"},

   {"role" : "dbAdmin","db" : "test"}

                         ]

                }

             )

##可用的内嵌角色(roles

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

猜你喜欢

转载自blog.csdn.net/donghaixiaolongwang/article/details/79885099