MongoDB Atlas User Authentication

748 views
Skip to first unread message

Peter Alderson

unread,
Aug 29, 2016, 10:15:12 AM8/29/16
to mongodb-user
I have a MongoDB Atlas instance, and am able to connect to it, but I am unable to create an account and access the DB from node.js. I can access the DB from Mongo Shell, after using the mongo command below & > 'use mytestcollection'.  Trying to access my testcollection directly from shell returns 'Error Authentication Failed'.

Here'e the Shell Connection String..

    mongo mongodb://<atlasDB>-1-shard-00-00-<string>.mongodb.net:27017,<atlasDB>-1-shard-00-01-<string>.mongodb.net:27017,<atlasDB>-1-shard-00-02-<string>.mongodb.net:27017/admin?replicaSet=<atlasDB>-1-shard-0 --ssl --username <account>  --password <password>

The Mongo Docs suggest kay:<password> as prefix first <atlasDB> in uri, but this constantly fails to establish DB connection.

Here's the Node.js Code

    var uri = "mongodb://<atlasDB>-1-shard-00-00-<string>.mongodb.net:27017,"+
               "<atlasDB>-1-shard-00-01-<string>.mongodb.net:27017,"+
               "<atlasDB>-1-shard-00-02-<string>.mongodb.net:27017/mytestcollection?"+
               "replicaSet=-1-shard-0"+
               "&ssl=true"+
               "&authSource=<admin>"+
               "&username=<account>"+
               "&password=<password>"
            
and the Node Code is...

    MongoDB.connect(uri,function(e,db) { 
            if ( e ) { console.error('Mongo Failed'); return console.log(e); } 
            console.log('MongoSuccess');
            db.collection('mytestcollection').find().toArray(function(e,d) {
            if ( e ) { console.log('error'); console.log(e);  }
            if ( d ) { console.log('test.length',d.length); }
           });
     });

And the error is...

    MongoSuccess
    error
    { MongoError: not authorized on test to execute command { find: "mytestcollection", filter: {} }
    at Function.MongoError.create (/home/ec2-user/frame/node_modules/mongodb-core/lib/error.js:31:11)
    at queryCallback (/home/ec2-user/frame/node_modules/mongodb-core/lib/cursor.js:206:36)
    at /home/ec2-user/frame/node_modules/mongodb-core/lib/connection/pool.js:430:18
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    name: 'MongoError',
    message: 'not authorized on test to execute command { find: "mytestcollection", filter: {} }',
    ok: 0,
    errmsg: 'not authorized on test to execute command { find: "mytestcollection", filter: {} }',
    code: 13 }

Any Suggestions welcome.

Wan Bachtiar

unread,
Sep 12, 2016, 11:40:15 PM9/12/16
to mongodb-user
This question has also been posted and answered in StackOverflow: 


Thanks, 

Wan. 
Reply all
Reply to author
Forward
0 new messages