1.开启mongodb的服务
mongod --config "D:\MongoDB\bin\mongo.cfg" --serviceName "MongoDB" --install
等价于:
mongod --dbpath "xxx" --logpath "xxx" --serviceName "MongoDB" --install
mongo.cfg的内容为
#logpath代表日志文件的文件路径,参数值就是文件路径的值
systemLog:
destination: file
path: D:\MongoDB\data\log\MongoDB.log
#dbpath代表Mongodb数据库对应的目录
storage:
dbPath: D:\MongoDB\data\db
#开启安全认证,此处开启,启动mongodb服务时不使用--auth也会开启身份验证
#security:
# authorization: enabled
当MongoDB服务发布成功之后,可以使用net start MongoDB / net stop MongoDB 启动/暂停MongoDB (cmd需要以管理员身份运行)
如果已经发布服务,可以先删除
2.设置管理员用户
//切换到admin数据库(切换成功会显示 switched to db admin)
//首先切换到admin数据库,这个库的作用是用来存放MongoDB中所有的授权用户,
//默认这个库是不存在的,我们先切换过来,在用的时候它会自动创建
use admin
//创建用户(MongoDB中内置了很多角色)
//role:表示角色,db:表示当前角色针对哪个数据库有效。
//比如设置了admin 那么这个用户的权限范围只在admin数据库有效。
db.createUser({
"user" : "admin",
"pwd": "123456",
"roles" : [
{role:"userAdminAnyDatabase", db: "admin"},
{role:"readWriteAnyDatabase", db: "admin"}
]},
{ w: "majority" , wtimeout: 5000 }
);
//然后我们可以给具体的数据里设置授权用户了
db.createUser({
"user" : "wpfc",
"pwd": "qwe123",
"roles" : [
{role: "readWrite", db: "mydb" }
]},
{ w: "majority" , wtimeout: 5000 }
);
//查看mongodb所有用户
db.system.users.find();
//进行身份认证(认证成功返回1)
db.auth("admin","123456");
db.auth("wpfc","qwe123");
具体的实际操作如下:
3.重新发布带身份认证的mongo服务
mongod --config "D:\MongoDB\bin\mongo.cfg" --serviceName "MongoDB" --auth --reinstall