- 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 FilesMongoDBServer4.0data" --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服务即可