美文网首页
CentOS 7上安装配置MongoDB,添加管理员用户

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

作者: LonelyGod_383c | 来源:发表于2018-06-05 20:46 被阅读22次

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

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

    我本教程中做什么:

    1. 安装MongoDB
    2. 创建管理员用户
    3. 启用MongoDB身份验证和测试
    • 版本 3.6.2
    • 环境 centos 7

    安装

    建议从官网上安装学习,我图方便从 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验证,我把我走的弯路记录下,希望对自己有所帮助

    相关文章

      网友评论

          本文标题:CentOS 7上安装配置MongoDB,添加管理员用户

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