Eu também estava coçando a cabeça com o mesmo problema, e tudo funcionou depois que defini a função como root ao adicionar o primeiro usuário administrador.
use admin
db.createUser(
{
user: 'admin',
pwd: 'password',
roles: [ { role: 'root', db: 'admin' } ]
}
);
exit;
Se você já criou o
admin
usuário, você pode alterar a função assim:use admin;
db.grantRolesToUser('admin', [{ role: 'root', db: 'admin' }])
Para obter uma referência completa de configuração de autenticação, consulte as etapas que compilei após horas de pesquisa na Internet.