##前言 最近好多mongodb数据库用户数据被删除,并且被勒索。包括我自己。
由于之前不太懂,并没有对数据库设置权限就可以直接用。
于是产生如下悲剧:
随后查看服务端日志:
详细经过
##一、win7下尝试自己攻击自己的数据库
- cmd进入自己的mongdb安装目录bin目录,然后做如下操作,轻轻松松可以插入成功,真尴尬!!!
。
##二、解决问题 网上搜了一下,先给mongodb加权限。
- 2.1、开启安全验证注意路径匹配好就好了。开启auth参考博客
mongod --dbpath "C:\Program Files\MongoDB\Server\3.2\bin\data\db" --logpath "C:\Program Files\MongoDB
\Server\3.2\bin\data\log\MongoDB.log" --auth
- 2.2、新建管理员用户和数据库用户,注意这儿不能用addUser,而是createUser。因为addUser貌似是老版本的。参考博客
这里用到的命令:db.system.users.find();查找所用数据库用户。db.createUser({})创建用户。
-
2.3、(1)、再次连接的时候提示需要auth权限、(2)、先user admin,然后db.auth(用户名,密码);返回1表示授权成功。
-
2.4、mongoose连接授权过的mongodb。这样应该就可以安全的操作数据库了。
/**
* 假如我们这里使用数据库test,所设置的用户名和密码都是test。
*/
module.exports={
mongodb:"mongodb://test:test@localhost/test"
}
##二、待解决问题。 robomongo此时可以通过admin的用户名密码可以登录成功。
但是admin的用户名密码并不能操作某一个数据库。如我们当我点击test会报错。这样的话,我操作数据库只能再cmd下了,着实不太方便。