Node.js + MongoDB -- MongoDB增加数据库权限认证

776 阅读1分钟

背景

MongoDB初始化未添加权限验证机制(用户),导致容易被攻击删库,如:😭 image.png

解决办法

一: 更改MongoDB的默认端口号,

修改mongod.conf的端口号配置

二: 为MongoDB数据库添加用户

  1. 开启数据库的安全选项 更改mongod.conf配置:
security:
  authorization: enabled
  1. 为数据库添加用户

    • 切换到需要操作的数据库
    • db.createUser({user: "username", pwd: "password", roles: [role]}),角色如readWrite、dbOwner等,参考官网
    • db.auth("username", "pwd")验证
    • 重启mongodb服务
  2. 相应的需要更改server的mongodb连接,以node.js为例
    使用MongoClient连接mongodb

    let MongoClient = require('mongodb').MongoClient;
    // 自己的链接地址
    let url = 'mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb';
    MongoClient.connect(
        url,
        {
           authSource: 'sword',
           auth: {
             user: 'username',
             password: '*******',
           },
        },
        callback
    );
    

    参考链接:Node.js MongoDB Driver API