2017-03-22 13 views
3

MongoDB 3.4 Replica Setに、Node.js MongoDB Driver APIパッケージが既に含まれているNode.jsアプリケーションを使用してユーザーを追加する必要があります。Node.jsでMongodb 3.4にユーザーとしてx.509証明書の件名を追加するにはMongoDB Driver API?

問題はThe API documentationはカバー方法がありませんadd x.509 Certificate subject as a Userです。

誰でもその方法を知っていますか?ノード上で、MongoDBのに対してコマンドハッシュを実行し、Mongoドキュメント以下

mongo --host mongo-node-0 
use admin 
db.getSiblingDB("$external").runCommand(
{createUser: "[email protected],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" } 
]}) 
+0

は、あなたが何をしようとしたことがありますか?少なくともvar db = new Db( '$ external')のようなあなたの試みは、 db.command(.... 'etc –

答えて

1

:他の言葉で、私は以下のMongoDBのコマンドを実行するために使用することができますNode.jsのメカニズム/ APIを必要としています。これにより、サーバー上の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: "[email protected],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(); 
    }); 
}); 
+0

Hey Lucas、本当にありがとうございました!実際には、x.509のネイティブのaddUserサポートを探していましたが、存在しないように見えます。 –

+0

こんにちは、 最後に編集されたメンバー(ユーザー/ 36938/taylan-aydinli、users)のように改訂されました。このコードはもう一度編集されました。/488397/steveとusers/2057091/aserre)は、現在のソースコードにバグがあり、動作しなくてもそれを拒否しました。 / –

関連する問題