MongoDB 加密登录

2019-10-31  本文已影响0人  龚达耶

在日常开发中我们不能让我们的数据库不需要账号和密码就直接裸露在外面,这样非常不安全,所以我们需要给数据库一定的权限控制,不知道怎么安装的同学可以先看我这篇文章

传送门

在这篇文章中我们讲到可以通过 --auth 来设置是否需要认证

如果你在还没有设置账号和密码之前使用了这行指令

/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --auth --port=27017 --fork

我们会看到我们再也进不去了

image.png

接下来我们就先找到进程

ps aux |grep mongodb

然后删除它

image.png

如果说你是使用没有账号密码也就是没有加auth来启动的话,前面的话当我没说

我们首先启动数据库

/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork

cd到mongodb目录下的bin文件夹,执行命令

./mongo

使用admin数据库建立一个账户和密码

use admin

db.createUser({ user: "gongdaye", pwd: "z1811021", roles: [ { role: "userAdminAnyDatabase", db: "admin" }]})
image.png

然后我们重启数据库

先找到进程杀掉然后用auth方式加上

image.png
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --auth --port=27017 --fork

然后我们在bin文件夹执行命令

./mongo
image.png

我们发现这时候就需要密码了我们把刚才设置的账户和密码用db.auth()方法输入就可以进去看了

当然不同的数据库需要不同的权限

如果不设置依然会有错,所以我们为另一个数据库设置权限

db.createUser({user:'gongdaye',pwd:'z1811021',roles:[{role:'readWrite',db:'jorge_bot'}]})
image.png

依然同样用db.auth()就可以进去了

image.png

如果说是使用MongoDB Compass的同学我们可以测试下

image.png image.png

成功!!!

上一篇下一篇

猜你喜欢

热点阅读