2017-03-22 1 views
3

Node.js MongoDB Driver API 패키지가 이미있는 Node.js 애플리케이션을 사용하여 MongoDB 3.4 Replica Set에 사용자를 추가해야합니다.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

안녕 루카스, 정말 고마워! 실제로 x.509에 대한 네이티브 addUser 지원을 찾고 있었지만 존재하지 않는 것 같습니다. 어쨌든, 당신이 제공 한 것은 정확히 무엇입니까? –

+0

안녕하세요, 마지막으로 리뷰어 (사용자/36938/taylan-aydinli, users)로 보았 기 때문에 다시 편집되었습니다./488397/steve 및 users/2057091/aserre)는 현재 소스 코드에 버그가 있음을 인식하지 못하고이를 거부했으며 작동하지 않을 것입니다.이 코드 작업을 수행 할 수정본을 다시 보냈습니다. / –

관련 문제