Shaoli's Blog

MongoDB 设置用户名密码登录

MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mongodb就会产生安全风险,被利用此配置漏洞,入侵数据库.


安全风险

  • 数据库隐私泄露
  • 数据库被清空
  • 数据库运行缓慢



解决方案: 启用验证



新建终端

mongo


创建普通用户

db.createUser( {
    user: "adminUser",
    pwd: "adminPass",
    roles: [
                    {
                            "role" : "readWriteAnyDatabase",
                            "db" : "admin"
                    }
              ]
  })


进行用户身份的验证,如果返回1说明验证通过。

db.auth("adminUser", "adminPass")


关闭并重启mongo服务

# 关闭
db.shutdownServer() 

#退出mongo模式
exit

#启动
/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork -auth


客户端需要添加用户名密码验证,才能连接

# mongodb 为协议
# adminUser: 连接数据库的用户
# adminPass: 该用户的密码
# localhost: 本地的地址(因为这是本地环境)
# 27017: mongodb的端口号(这个一般是默认值,也可以进行修改)
# example: 数据库的名字
var db = 'mongodb://adminUser:adminPass@localhost:27017/example'

// 连接
mongose.connect(db);


    评论列表

  • 暂无评论...快来说说吧!
person
0 / 16
comment
0 / 100