mongodb简介:
MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。 MongoDB工作在收集和文件的概念。
MongoDB默认设置为无权限访问限制,所以可以直接进入数据库并对数据进行操作,
事件背景:最近,公司放在移动机房的两台装有mongoDB数据库的服务器被绿盟扫描出来有漏洞,要求我们解决
根据绿盟提供的解决方法是在admin库中添加任意用户,并启用认证。 但绿盟给出的方法是基于linux下的方法,但其实原理大同小异。
我更加网上搜来的文章,进行整合适用我们项目的实际情况,在此作记录,以便备忘。
step1:切换至mongoDB安装路径的bin目录下后,执行 mongo登录。
setp2:使用show dbs 可以直接查看系统中已存在的数据库。
step3:进入admin库中
step4:创建用户命令如下:
db.createUser(
{
user
:
"admin"
,
pwd:
"admin123"
,
roles: [ { role:
"userAdminAnyDatabase"
, db:
"admin"
} ]
}
)
step5:进入系统注册表(WIN+R-->regedit),找到[HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services-->MongoDB]在右边的健-值列表中打到 “ImagePath” 在该值中 添加 --auth
step6:重启MongoDB服务:
step7:重新进入进入查看已存在数据库发现没有权限
step8:进行认证,直接认证提示失败(由于mongodb的用户是基于库的,所以必须先指定数据库才可以进行认证)
stpe9:进入admin库,并进行认证,返回1表示认证成功,并可以查看数据库;
但是这里也同样导致了一个问题,“mongodb对集成的系统不可用了”
因为集成的系统是直接对mongdb进行使用的,没有进行认证,启用认证后,集成系统不能再使用mongodb。