【漏洞修复】Windows安装了mongodb后再加Auth
第一种方法:
cmd-> regedit-> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services->MongoDB
(mongodb注册的名称,我的是MongoDB)
在它的ImgPath中,我们修改一下,加入 --auth
如下
"E:\develop Software\Mongodb\mongodb-win32-x86_64-2.2.3\mongodb-win32-x86_64-2.2.3\bin\mongod.exe" -dbpath "E:\develop Software\Mongodb\mongodb-win32-x86_64-2.2.3\mongodb-win32-x86_64-2.2.3\data\db" --logpath "E:\develop Software\Mongodb\mongodb-win32-x86_64-2.2.3\mongodb-win32-x86_64-2.2.3\data\log\mongodb.log" --auth --service
然后重启一下项目就可以
第二种方法:
找到bin下面的mongod.cfg文件,加入:
security:
authorization: enabled加了这个
然后重启服务
最后要记得在yml里面更改mongodb的连接方式
mongodb:
uri: mongodb://账号:密码@127.0.0.1:27017/?authSource=admin
database: 数据库名
怎么验证有没有Auth验证?怎么新建用户并且验证成功呢?
使用命令去验证,找到mongodb的bin,然后cmd
运行命令:mongo --host 127.0.0.1 --port 27017
打印内容:
ongoDB shell version v4.0.8
connecting to: mongodb://127.0.0.1:27017/test?gssapiServiceName=mongodb
然后随便use admin,再运行show dbs等指令去测试,可以直接运行就说明没有Auth认证,提示需要验证就说明验证加成功了。
新增用户授权角色:
db.createUser({user:"用户名",pwd:"密码",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"readWriteAnyDatabase",db:"admin"}]});
db.createUser({user: "用户名",pwd: "密码",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
更改密码:db.updateUser("用户名",{"pwd":"新密码"})
Auth验证登陆:db.auth("用户名","密码")
给某个用户授权角色:db.grantRolesToUser( "用户名" , [ { role: "readWriteAnyDatabase", db: "admin" } ])
加上Auth验证(但是貌似没用):mongod --config "D:\Deploy\MongoDB\Server\4.0\bin\mongod.cfg" --serviceName "MongoDB" --auth --reinstall
删除已经有的mongodb服务:sc delete MongoDB
新建mongodb服务:sc create MongoDB binPath="C:\路径\MongoDB\Server\4.0\bin\mongod.exe --service --config=C:\路径\MongoDB\Server\4.0\bin\mongod.cfg"
mongod --config "D:\Deploy\MongoDB\Server\4.0\bin\mongod.cfg" --serviceName "MongoDB" --auth --reinstall
sc delete MongoDB
sc create MongoDB binPath="D:\Deploy\MongoDB\Server\4.0\bin\mongod.exe --service --config=D:\Deploy\MongoDB\Server\4.0\bin\mongod.cfg"