mongodb之权限管理——用户的增删改查和内置角色说明
mongodb版本:3.2.4
1.先尝试创建root用户:root用户拥有最高权限,可以进行任何操作
use admin
db.createUser({'user':'root', 'pwd':'root', 'roles':[{'role':'root', 'db':'admin'}]})
    1
    2
发现不可以,说明不登录是不能创建root用户的。但可以创建userAdminAnyDatabase角色
createUser()方法的官方文档:
{
  user: "<name>",
  pwd: "<cleartext password>",
  customData: { <any information> },
  roles: [
    { role: "<role>", db: "<database>" } | "<role>",
    ...
  ],
  authenticationRestrictions: [
     {
       clientSource: ["<IP>" | "<CIDR range>", ...]
       serverAddress: ["<IP>" | "<CIDR range>", ...]
     },
     ...
  ],
  mechanisms: [ "<SCRAM-SHA-1|SCRAM-SHA-256>", ... ],
  passwordDigestor: "<server|client>"
}
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
2.创建userAdminAnyDatabase用户:此用户只有用户管理权限,即创建,修改及删除用户。
use admin
db.createUser({'user':'userAdmin', 'pwd':'userAdmin', 'roles':[{'role':'userAdminAnyDatabase', 'db':'admin'}]})
    1
    2
3.登录:
use admin
db.auth('userAdmin','userAdmin')
    1
    2
注意:是哪个库的用户需要切换个相应的库后进行登录操作。
4.退出:
db.logout()
    1
不能执行的操作:
db.shutdownServer():关闭mongodb
show collections:查看集合
能执行的操作:
1.db.system.users.find().pretty():查看用户表
2.创建root用户:
db.createUser({'user':'root', 'pwd':'root', 'roles':[{'role':'root', 'db':'admin'}]})
    1
    2
创建读写readWrite用户:
db.createUser({'user':'lison','pwd':'lison','roles':[{'role':'readWrite','db':'lison'}]})
    1
修改用户角色:
db.updateUser('lison',{'roles':[{'role':'readWriteAnyDatabase','db':'admin'},{'role':'read','db':'lison'}]})
    1
updateUser()方法的官方文档:
db.updateUser(
   "<username>",
   {
     customData : { <any information> },
     roles : [
       { role: "<role>", db: "<database>" } | "<role>",
       ...
     ],
     pwd: "<cleartext password>",
     authenticationRestrictions: [
        {
          clientSource: ["<IP>" | "<CIDR range>", ...],
          serverAddress: ["<IP>", | "<CIDR range>", ...]
        },
        ...
     ],
     mechanisms: [ "<SCRAM-SHA-1|SCRAM-SHA-256>", ... ],
     passwordDigestor: "<server|client>"
   },
   writeConcern: { <write concern> }
)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
修改用户密码:
use lison
db.changeUserPassword('lison','lison')
    1
    2
changeUserPassword()方法的官方文档:
use products
db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")
    1
    2
修改products集合中的用户accountUser的密码为SOh3TbYhx8ypJPxmt1oOfL,注意:用updateUser()方法也能修改密码。
删除用户:
db.dropUser('lison')
    1
dropUser()方法的官方文档:
use products
db.dropUser("reportUser1", {w: "majority", wtimeout: 5000})
    1
    2
删除products集合中的reportUser1用户
查询用户
db.getUser('lison1')
    1
getUser()的官方文档:
db.getUser( "<username>", {`在这里插入代码片`
   showCredentials: <Boolean>,
   showPrivileges: <Boolean>,
   showAuthenticationRestrictions: <Boolean>,
   filter: <document>
} )
    1
    2
    3
    4
    5
    6
注意:第二个参数为可选,而且默认都为false。
查询多个或全部用户:
db.getUsers()
    1
官方文档:
db.getUsers( {
   showCredentials: <Boolean>,
   filter: <document>
} )
    1
    2
    3
    4
给用户赋角色:
 db.grantRolesToUser( "lison1", [{'role':'read','db':'lison'}])
    1
官方文档:
db.grantRolesToUser( "<username>", [ <roles> ], { <writeConcern> } )
use products
db.grantRolesToUser(
   "accountUser01",
   [ "readWrite" , { role: "read", db: "stock" } ],
   { w: "majority" , wtimeout: 4000 }
)
    1
    2
    3
    4
    5
    6
    7
    8
回收用户的角色:
db.revokeRolesFromUser('lison1',[{'role':'read','db':'lison'}])
    1
官方文档:
use products
db.revokeRolesFromUser( "accountUser01",
                        [ { role: "read", db: "stock" }, "readWrite" ],
                        { w: "majority" }
                      )
    1
    2
    3
    4
    5
官方文档地址:1.用户管理:https://docs.mongodb.com/master/reference/method/#user-management
2.角色管理:https://docs.mongodb.com/master/core/security-built-in-roles/
部分说明:
在这里插入图片描述
在这里插入图片描述
星坠竹空
关注
————————————————
版权声明:本文为CSDN博主「星坠竹空」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shidebin/article/details/83147224
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号