美文网首页
MongoDB 加密登录

MongoDB 加密登录

作者: 龚达耶 | 来源:发表于2019-10-31 17:03 被阅读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

    成功!!!

    相关文章

      网友评论

          本文标题:MongoDB 加密登录

          本文链接:https://www.haomeiwen.com/subject/tevnvctx.html