设置MongoDB账户密码
背景
MongoDB裸奔确实很爽,尤其是在服务器上用来学习再适合不过了,但是网络有风险,裸奔需谨慎
。这不之前在学习MongoDB的时候裸奔,开放了27017端口号,结果被黑了,所有的测试数据
都被加密了,库都没了,只留下了一条留言,感觉这条留言好像在嘲讽我,没有设置账户和密码,附上截图:
让我花费点大洋购买0.021比特币,家人们,瞬间笑不活了,就这一百多万条测试数据就收0.021,那以后是不是找到了发家致富的道路,哈哈哈哈哈,玩笑归玩笑,兄弟们,切勿当真。问题来了,现在已经知道了因为裸奔导致库被黑,那么貌似
现在只需要设置账户名密码就OK
PS❤️:如果你的数据非常重要,而且没有备份的话,讲道理兄弟,你可能需要花费点大洋买比币了🙈
正文开始
1、准备工作
因为之前是裸奔,所以先暂时把防火墙中的27017端口先关闭,防止在重新配置过程中再次被黑掉
,(因为我之前允许所有来源0.0.0.0
,或许可以尝试允许定向IP访问)
2、删除之前的数据库
因为我的MongoDB数据库是使用Docker进行安装的,所以先删除之前的MongoDB容器,所有数据都被黑了,也没有保留的必要了,害怕被插入后台运行脚本,所以干脆删除了吧!!!
# 查看所有运行的容器
> docker ps
# 停止运行中的MongoDB容器
> docker stop CONTAINER ID(容器编号)
# 删除刚刚停止的MongoDB容器
> docker rm 容器id
3、运行MongoDB容器
因为我的docker中的MongoDB中的版本是5.0.7,所以兄弟们在运行MongoDB容器的时候要注意版本号,或者是重新拉取一个和我一样的版本也可以,貌似目前我的版本是最新的(2022-04-30)
# 拉取MongoDB5.0.7版本的数据库
> docker pull mongo:5.0.7
# 查看拉取的镜像
> docker images
# 运行docker容器
> docker run -d --name mongo(给容器起个名称) -p 27017:27017 mongo:5.0.7 --auth
4、设置账户名密码
4.1、进入MongoDB数据库
直接进入docker容器
# 查看当前运行的docker镜像
> docker ps
# 进入MongoDB容器
> docker exec -it mongo(容器名称) bash
# 进入MongoDB数据库
> mongo
或者进入linux解压完之后的mongoDB文件夹中的bin文件夹,运行脚本
> ./mongo
4.2、MongoDB默认角色
角色描述 | 角色标识 |
---|---|
数据库用户角色 | read、readWrite |