MongoDB 4.0.10 用户管理

  • MongoDB的用户管理
    • 在MongoDB中,内置数据库admin,涉及到服务器配置层面的操作,需要切换到admin数据库,即use admin >>> 相当于进入超级用户管理模式
    • mongo的用户是以数据库为单位来建立的,每个数据库都有自己的管理员
    • 在设置用户时,需要先在admin数据库下建立管理员(相当于超级管理员)
1 use admin
2 db.system.users.find()    // 查看用户 show users
3 db.createUser({user:'sa',pwd:'123456',roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) // 创建管理员
4 db.auth("sa","123456")    // 管理员授权
5 // 使用管理员账号登录服务器之后,创建一个新数据库的用户,然后就可以使用该用户登录,操作该数据库
6 use test
7 db.createUser({user:"DEV",pwd:"123456",roles:[{role:"readWrite",db:"test"}]})
8 db.auth("DEV","123456")
  • 用户管理相关函数
 1 // 创建新用户:<username>:用户, <password>:密码, <role>:权限, <database>:数据库
 2 db.createUser({user:'<username>',pwd:'<password>',roles:[{role:"<role>",db:"<database>"}]})
 3 db.changeUserPassword(username, password) // 修改用户密码
 4 db.removeUser(username)                   // 删除用户
 5 db.runCommand({usersInfo:username})       // 查看某个用户的信息
 6 db.auth(username, password)                  // 管理员授权
 7 db.system.users.find()                      // 查看所有用户,在admin数据库中
 8 
 9 // <role>:权限列表如下
10 // Read:允许用户读取指定数据库
11 // readWrite:允许用户读写指定数据库
12 // dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
13 // userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
14 // clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
15 // readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
16 // readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
17 // userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
18 // dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
19 // root:只在admin数据库中可用。超级账号,超级权限
  • 开启MongoDB用户验证
    • 直接使用命令行开启
1 mongod --dbpath "C:\Program Files\MongoDB\Server\4.0\data" --port 27017 --auth
2 mongo admin -u 用户名 -p 密码  # 登录
    • 在Window系统中可以修改配置文件,然后重新注册服务
1 # 修改mongod.cfg 配置文件,特别需要注意缩进
2 net:
3   port: 27017
4   bindIp: 127.0.0.1 # bind_ip改为0.0.0.0,可以让其他电脑可以访问,用于远程连接;如果bind_ip是127.0.0.1,只能本地访问
5 security:
6   authorization: enabled
7 # 然后去重新注册MongoDB服务即可

 

posted @ 2020-08-15 22:46  陨落的星尘  阅读(370)  评论(0编辑  收藏  举报