如何通过Node.js Mongodb驱动程序API将x.509证书主体作为用户添加到Mongodb 3.4中?
我需要使用Node.js应用程序将用户添加到我的MongoDB 3.4副本集中,该应用程序已经具有Node.js MongoDB驱动程序API包 问题是:没有涵盖如何 有人知道怎么做吗?换句话说,我需要一个Node.js机制/API,我可以使用它来执行下面的mongodb命令:如何通过Node.js Mongodb驱动程序API将x.509证书主体作为用户添加到Mongodb 3.4中?,node.js,mongodb,x509,Node.js,Mongodb,X509,我需要使用Node.js应用程序将用户添加到我的MongoDB 3.4副本集中,该应用程序已经具有Node.js MongoDB驱动程序API包 问题是:没有涵盖如何 有人知道怎么做吗?换句话说,我需要一个Node.js机制/API,我可以使用它来执行下面的mongodb命令: mongo --host mongo-node-0 use admin db.getSiblingDB("$external").runCommand( {createUser: "emailAddress=foo@ba
mongo --host mongo-node-0
use admin
db.getSiblingDB("$external").runCommand(
{createUser: "emailAddress=foo@bar.com,CN=admin,OU=Clients,O=FOO,L=Dublin,ST=Ireland,C=IE",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db:"admin" },
{ role: "clusterAdmin", db: "admin" }
]})
在文档之后,在节点上,对MongoDB执行命令哈希。这使您可以访问服务器上通过API不可用的任何命令
command(selector[, options], callback)
Arguments:
selector (object) – the command hash to send to the server, ex: {ping:1}.
[options] (object) – additional options for the command.
callback (function) – this will be called after executing this method. The command always return the whole result of the command as the second parameter.
Returns:
null
因此,您可以尝试:
var db = new Db('$external', new MongoServer('localhost', 27017));
db.open(function(err, db) {
if (err) {
console.log(err);
}
db.command({
createUser: "emailAddress=foo@bar.com,CN=admin,OU=Clients,O=FOO,L=Dublin,ST=Ireland,C=IE",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db:"admin" },
{ role: "clusterAdmin", db: "admin" }
]}, function(err, result){
if (err) {
console.log(err);
}
console.log(result)
db.close();
});
});
你试过什么吗?至少您可以尝试像
vardb=newdb(“$external”);db.command(..
etcHey Lucas,非常感谢!实际上我正在寻找x.509的本机addUser支持,但它似乎不存在。无论如何,您提供的正是我所需要的!我测试了您的代码,并在进行了一些修复后(请参阅版本),它工作得很好!再次感谢!嗨,再次编辑,因为看起来像最后的评论员(users/36938/taylan aydinli,users/488397/steve and users/2057091/aserre)只是在没有意识到当前源代码有bug的情况下拒绝了它,并且将无法工作。我再次发送了版本,其中的更正将完成此代码的工作。希望不会再次被拒绝:/