一、创建管理员账户并赋予权限
输入mongo,进入mongodb的命令页面
> use admin #进入admin数据库
switched to db admin
> db.createUser(
{user:"admin",
pwd:"admin",
roles:[{role:"root", db:"admin"}]
}
)
用户创建成功会返回
user:”用户名“,
pwd:"密码”,
roles:[{role:"角色名“, db:"角色所属数据库”}, {role:"角色名2“, db:"角色所属数据库2”},.....]
内建角色
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
二、修改配置文档mongod.cfg(位置:安装目录\bin 下)
首先,将bind_ip改为0.0.0.0 (让其他电脑可以访问,用于远程连接,如果bind_ip是127.0.0.1的话,就只能本地访问)
然后找到 #security:改成下图所示,开启安全认证。
security:
authorization: enabled #注意缩进,参照其他的值来改,若是缩进不对可能导致后面服务不能重启
如图:
三、重启服务
重启MongoDB Server服务,启用认证!
四、验证的登陆
输入mongo,进入MongoDB shel
直接输入show dbs命令会报错,因为没有认证登陆
接下来,进入账户所属数据库,再认证即可
> use admin
switched to db admin
> db.auth("用户名","密码")
1
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
#这样登陆成功了