在mongodb中,通过 mongod.exe --dbpath=D:\mongoData --logpath=D:\mongoData\log\mongodb.log 这种方式启动DB,无需授权就可登陆并且拥有所有的数据库操作权限,这样相当于给他人打开了数据操作的大门。
出入数据安全,必须授权用户进行登陆。以下为授权认证登陆的步骤(版本3.4)
1. 首次通过无授权方式启动DB: mongod.exe --dbpath=D:\mongoData --logpath=D:\mongoData\log\mongodb.log
2. 通过mongo连接DB,切换到数据库admin,并创建超级用户
use admin
db.createUser(
{
user:"root",
pwd:"123456",
roles:["root"]
}
)
3. 通过命令:db.shutdownServer() 关闭数据库。
4. 以授权方式启动DB:mongod.exe --auth --dbpath=D:\mongoData --logpath=D:\mongoData\log\mongodb.log
5.再以mongo连接数据库,切换到admin
use admin;
show users;
会提示未认证授权
![图片](https://i-blog.csdnimg.cn/blog_migrate/67f13ee15373adaf06451cd934ef1540.png)
此时,通过 db.auth("root","123456"); 进行认证
再使用show users;发现已认证授权成功。
6. 最后为我们的数据库添加用户,这里以数据库ocean为例,添加用户ocean,给它添加读写权限
user ocean;
db.createUser(
{
user: "ocean",
pwd: "123456",
roles: [
{ role: "readWrite", db: "ocean" }
]
}
)
);
7. 到此给数据库添加授权认证成功。