windows下mongodb权限设置解决方法

时间:2022-12-16 10:34:17

mongodb简介:

MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。 MongoDB工作在收集和文件的概念。

MongoDB默认设置为无权限访问限制,所以可以直接进入数据库并对数据进行操作,

事件背景:最近,公司放在移动机房的两台装有mongoDB数据库的服务器被绿盟扫描出来有漏洞,要求我们解决

根据绿盟提供的解决方法是在admin库中添加任意用户,并启用认证。 但绿盟给出的方法是基于linux下的方法,但其实原理大同小异。

我更加网上搜来的文章,进行整合适用我们项目的实际情况,在此作记录,以便备忘。

step1:切换至mongoDB安装路径的bin目录下后,执行 mongo登录。

windows下mongodb权限设置解决方法

setp2:使用show dbs 可以直接查看系统中已存在的数据库。

windows下mongodb权限设置解决方法

step3:进入admin库中

windows下mongodb权限设置解决方法

step4:创建用户命令如下:

db.createUser( 
  
    user"admin"
    pwd: "admin123"
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
  )

windows下mongodb权限设置解决方法

step5:进入系统注册表(WIN+R-->regedit),找到[HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services-->MongoDB]在右边的健-值列表中打到 “ImagePath”  在该值中 添加 --auth

windows下mongodb权限设置解决方法

step6:重启MongoDB服务:

windows下mongodb权限设置解决方法

step7:重新进入进入查看已存在数据库发现没有权限

windows下mongodb权限设置解决方法

step8:进行认证,直接认证提示失败(由于mongodb的用户是基于库的,所以必须先指定数据库才可以进行认证)

windows下mongodb权限设置解决方法

stpe9:进入admin库,并进行认证,返回1表示认证成功,并可以查看数据库;

windows下mongodb权限设置解决方法

但是这里也同样导致了一个问题,“mongodb对集成的系统不可用了”

因为集成的系统是直接对mongdb进行使用的,没有进行认证,启用认证后,集成系统不能再使用mongodb。