我有一个本地测试环境,在localhost上有一个mongod和一个db" test"与用户" john"。在robomongo中,用户" john"在db" test"中显示。
在我的Node.js程序中:
本地主机上的Mongod:" UserNotFound:找不到用户john @ test"
如何在数据库中创建用户" test"并对#34; test"?
进行身份验证由于
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您使用来自http://mongodb.github.io/node-mongodb-native/2.1/api/的mongo驱动程序(使用Bluebird promises和typescript),请确保您拥有管理员或用户以及添加用户的权限,然后:
MongoClient.connect('mongodb://localhost:27017/test')
.then(
(db) => {
return db.authenticate(
<admin from above username>,
<admin from above password>
)
.then(
(success) => {
if(success) {
return Promise.resolve(db)
} else {
return Promise.reject('Yikes!');
}
}
)
}
)
.then(
(db) => {
const options = {
w: 1,
roles: ['readWrite']
}
return db.addUser(
<username>,
<password>,
options
)
}
);
1)基本连接到数据库,您需要将用户添加到具有添加用户权限的用户(如管理员)。在成功检索时,您将拥有db对象。
2)确定您要分配的角色,在这种情况下,我有硬编码&#39; readWrite&#39;。
3)使用用户名和密码(以及作为角色的选项)调用db.addUser。 http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#addUser