玉貔貅

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数据来源:https://segmentfault.com/a/1190000011554055

 

mongodb安装后是无需密码

Mongodb安装后自身是没有密码的,用户连接只需填写id地址,端口号,数据库名称即可

安全问题

只要你服务器的mongodb数据库端口开放,任何人的电脑都可以连接到你的数据库,操作修改你的mongodb数据,本人以前就遭受过入侵,深有感触。如图:黑客盗取你的数据库,然后留下一个邮箱和账号,要求你给比特币才肯归还数据库给你。。。

 

给mongodb加密

如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,只有数据库认证的用户才能执行读写操作,开户安全性检查。
第一步:开机先:mongod --dbpath 存放数据库文件夹路径

 

第二步:打开命令行窗口输入mongo,进入mongo环境 

 

第三步:切换到 'admin' 数据库 use admin

 

第四步:给admin设置用户密码:
user: 用户名, pwd: 用户密码,roles: 用来设置用户的权限,比如读,读写 等等
db.createUser({user: 'root', pwd: '123456', roles: ['root']})

 


验证是否添加成功,'db.auth(用户名,用户密码)' 这里用db.auth('root', '123456') 如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败...

第5步:刚才是给root设置密码,现在要给特定的每个库设置权限,比如我这里有一个库,库名字叫做Article,这里以Article这个库为例

 

 

切换到Article数据库,use Article

 

接下来为这个库添加一个用户,并且赋予权限,db.createUser({user:'zwVic',pwd:'adgjmp123',roles: [{role:'readWrite',db:'Article'}]})})
这行代码意思是 创建一个zwStar用户 给予读写权限 db表示该用户操作的数据库名

 


 

 

OK,一切搞定,重新开机mongodb,MongoDB默认是没有开启访问控制,我们通过--auth参数重启mongod服务。mongod --dbpath 存放数据库文件夹路径 --auth一旦开启了,用户连接mongod必须指定用户名和密码。

 

 

连接加密数据库

xxx.db('mongodb://your name: your pwd@ ip :27017/Article');
your name:为用户名
your pwd:为密码

总结

通过加密后。连接数据库就需要账号,密码,同时阿里云或者腾讯云上也可以给服务器设置安全组增加安全性,比如27107这个端口只授权给自己访问等等....
文中有什么不对的,希望大家指正哈!
如果觉得本文对你有所帮助,就star一下吧~

posted on 2019-01-25 16:49  玉貔貅  阅读(17591)  评论(0编辑  收藏  举报