从JavaScript文件使用MongoDB进行身份验证

时间:2018-06-05 17:42:28

标签: mongodb

我正在尝试编写一个MongoDB脚本,作为根据GDPR自动删除客户数据的一部分(当前流程是手动的),但我在从脚本进行身份验证时遇到问题。身份验证可以从命令行完美运行,但不能从脚本运行。

我不确定我应该使用哪种机制,但由于只有两种机制不需要外部文件(我不在命令行中使用),我想我会尝试两种机制。

从命令行运行时,这是我使用的命令:

$ mongo -u [adminusr] -p '[adminpwd]' --authenticationDatabase admin

这个脚本:

var host = '127.0.0.1';
var port = '27017';
var user = 'admin';
var pwd = 'secrets';
var authDB = 'admin';

try {
    var conn = new Mongo('mongodb://' + host + ':' + port + '/' + authDB);
    conn.auth({
        user: user,
        pwd: pwd,
        mechanism: 'SCRAM-SHA-1',
        digest: false
    });

    // deletion commands...
} catch (e) {
    print(e);
}

给出了这个错误:

$ mongo erasure.js
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Error: Authentication failed.

auth部分更改为:

    conn.auth({
        user: user,
        pwd: pwd,
        mechanism: 'MONGODB-CR',
        db: authDB,
        digest: false
    });

给了我这个错误:

$ mongo erasure.js
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Error: auth failed

writing MongoDB scriptsauthentication的官方文档在如何执行此操作方面也非常缺乏。

如何让auth工作?

感谢。

0 个答案:

没有答案