Meteor:MongoError:使用身份验证时未授权对db.collection进行查询

时间:2016-05-12 05:15:06

标签: mongodb meteor

我跟着meteor/mongodb: Use different DB for authentication & read/write到了T,并在尝试查询db时收到错误:

Exception while invoking method 'myMethod' MongoError: not authorized for query on myDB.bobRocks

我使用以下方式在Mongo中设置用户:

use admin
db.createUser(
    {
    user: 'bob',
    pwd: '12345',
    roles: [
        { role: 'readWrite', db: 'myDB'},
    ]
    }
)

我的数据库电话是:

var myDB = new MongoInternals.RemoteCollectionDriver("mongodb://10.10.10.100:27017/myDB");
BobRocks = new Mongo.Collection('bobRocks', { _driver: myDB })

最后我正在使用:

MONGO_URL=mongodb://bob:12345@10.10.10.100:27017/admin meteor run

我错过了什么?我认为身份验证将遵循MONGO_URL声明,但似乎没有。

1 个答案:

答案 0 :(得分:0)

如果你正在使用linux,那么你必须像这样导出像流星一样的mongourl。

export MONGO_URL=mongodb://bob:12345@10.10.10.100:27017/admin meteor run

或者如果您使用的是Windows,那么您必须设置mongourl然后流星跑。

SET MONGO_URL=mongodb://bob:12345@10.10.10.100:27017/admin meteor run

请先尝试使用mongo cli进行连接。

您也没有在此处传递用户名和密码

var myDB = new MongoInternals.RemoteCollectionDriver("mongodb://10.10.10.100:27017/myDB");

您可以在此处传递用户名和密码,就像传递mongo网址一样。

var myDB = new MongoInternals.RemoteCollectionDriver("mongodb://bob:12345@10.10.10.100:27017/myDB");

请确保myDB存在于远程服务器上。

相关问题