Я пытаюсь написать скрипт 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
Официальная документация по написанию сценариев MongoDB и аутентификация также очень мало о том, как это сделать.
Как заставить работать аутентификацию?
Спасибо.