CentOS 7上安装配置MongoDB,添加管理员用户

2018-06-05  本文已影响22人  LonelyGod_383c

MongoDB是一种面向文档的数据库管理系统,由C++撰写而成,以此来解决应用程序开发社区中的大量现实问题。2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。

MongoDB 一个缺点是安装后数据库都无需密码可以直接访问,安全上就给了黑客许多漏洞,教大家如何为MongoDB添加管理员,避免数据被莫名其妙清空这种操蛋事情

我本教程中做什么:

  1. 安装MongoDB
  2. 创建管理员用户
  3. 启用MongoDB身份验证和测试

安装

建议从官网上安装学习,我图方便从 oneinstack 安装

创建管理员用户

1、打开mongodb shell

mongo

2、切换到数据库 admin

use admin

3、新建管理员
注意:这里的管理员是没有读写任何数据库权限,只有管理 admin 数据库权限

db.createUser(
  {
    user: "adminfuck",
    pwd: "Yangxing",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

4、确保用户已经使用查询创建了

show users

在MongoDB中启用用户认证

修改mongodb的主配置文件 ,添加 --auth

nano /etc/rc.d/init.d/mongod
OPTIONS=" --auth -f $CONFIGFILE"

重新加载配置

systemctl daemon-reload

systemctl restart mongod

接下来,我们必须通过登录到mongo shell并切换到admin数据库来测试配置

mongo

use admin

show users

会报错 Error: don't know how to show [user]

我们需要使用命令'db.auth()'进行身份验证,授权成功 返回1

db.auth('adminfuck', 'Yangxing')

创建对数据库真正读写权限的用户,注意这里我们只能是 admin 数据库,因为我们在 use admin

db.createUser(
  {
    user: "test",
    pwd: "yangxing123",
    roles: [ { role: "readWrite", db: "admin" },
            { role: "read", db: "admin" } ]
  }
)

远程测试连接字符串格式

mongodb://test:yangxing123@远程ip地址:27017/admin

如果要建其他数据库名,创建管理员,把本文中出现的 admin 替换成相应数据库名重新来一遍即可。前提要关掉数据库auth验证,我把我走的弯路记录下,希望对自己有所帮助

上一篇 下一篇

猜你喜欢

热点阅读