1. 创建用户

修改mongodb.conf配置文件,

#是否需要认证

auth=false


重启mongdb

mongod --shutdown --dbpath=/home/mongodb6/db/

mongod --config /usr/local/mongodb6/conf/mongodb.conf


创建用户的时候,先把认证给去掉,本机访问。


//启动完毕,运行客户端连接上服务进行操作
./mongod --dbpath /home/mongodb6/db/
//admin库重点就是用来管理Mongo的账户的
use admin;
//测试环境为了方便我就直接用root角色了
db.createUser({user: "admin",pwd: "admin",roles: [ { role: "root", db: "admin" } ]});
//也可以修改用户的角色
db.updateUser("admin",{roles:[{"role":"root","db":"admin"}]});
//也可以修改用户的密码
db.updateUser("admin",{pwd:"admin"});


这样就可以创建一个用户了。具体的权限说明的话可以看下这里:


数据库用户角色:read、readWrite


数据库管理角色:dbAdmin、dbOwner、userAdmin


集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager


备份恢复角色:backup、restore


所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、


dbAdminAnyDatabase


超级用户角色:root


具体说明:


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


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


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


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


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


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


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


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


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


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


2. 支持远程访问

修改配置文件mongodb.conf


bind_ip=0.0.0.0
#是否需要认证
auth=true
#重新启动并验证一下:


db.auth("admin","admin");


之后你就可以用好用的NoSQL Booster for MongoDB这个工具进行远程连接了。