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这个工具进行远程连接了。