centos 宝塔面板 mongodb 设置用户账号密码登录

版权声明:转载请评论留言 https://blog.csdn.net/solocao/article/details/83347658

挂在网上的mongodb测试数据库,默认的无密码,端口直接登录,本来想着不会有人盯上吧,结果,一个月后,被黑客删库了,所以不管是接口,还是数据库的安全性一定要保证!!!

下面针对我的宝塔面板环境,记录给mongodb设置账号密码的过程。

1、进入mongodb安装目录,下面是宝塔面板的默认目录

cd /www/server/mongodb/bin

2、输入命令行mongo,进入mongodb环境

mongo

3、切换到 admin 数据库

use admin

4、给admin设置用户密码

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

5、验证是否添加成功,db.auth(用户名,用户密码)

db.auth('root', 'mima') 

如果返回 '1’表示验证成功, 如果是 ‘0’ 表示验证失败。

6、刚才是给root设置密码,现在要给特定的每个库设置权限,比如demo
切换到demo

use demo

7、接下来为demo库添加一个用户,并且赋予权限,

db.createUser({ user: 'cccc', pwd: 'demo_mima', roles: [{ role: 'readWrite', db: 'demo' }] })

这行代码意思是 创建一个cccc用户 给予读写权限 db表示该用户操作的数据库名。

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限

8、一切搞定,重新开机mongodb,通过增加 --auth 开启安全登录

mongod --dbpath /www/server/mongodb/data --auth

不过、我不使用这种方式,我通过修改mongodb的配置文件来实现
原来的配置文件
在这里插入图片描述
修改后的
在这里插入图片描述

  • bindIp修改为 0.0.0.0 允许外网访问
  • authorization 修改为 enabled 开启认证
    重启一下mongodb

最后再进行无密码登录,对不起,不好意思了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/solocao/article/details/83347658