2012-05-24 21 views
5

Sono in procinto di configurare mongodb e usiamo puppet per controllare la configurazione dei nostri server.Come posso utilizzare uno script per creare utenti in mongodb?

Ho la maggior parte delle cose a configurare come ho bisogno di loro, ma ho bisogno di creare l'utente all'interno del database mongo.

so come farlo utilizzando la shell mongo, e so che posso farlo utilizzando JavaScript/a .js utilizzando il comando

db.addUser("username", "password"[, readOnly]) 

Tuttavia, sono stato in grado di trovare un esempio solido di ciò che è necessario per farlo in javascript. Più precisamente, devo essere in grado di aggiungere un utente dalla riga di comando, usando una sorta di script di shell.

Se qualcuno potesse

a) punto me alcuni esempi solidi utilizzando JavaScript con MongoDB e

b) come posso fare questo dalla riga di comando?

risposta

11

cli di Mongo ti si dice come usarlo con un file js

$ mongo --help 
MongoDB shell version: 2.0.3 
usage: mongo [options] [db address] [file names (ending in .js)] 
... 

utilizzo: mongo [opzioni] [indirizzo db] [nomi dei file (che termina in .js)]

per esempio:

$ echo 'db.addUser("guest", "passwordForGuest", true);' > file.js 
$ mongo mydb file.js 
MongoDB shell version: 2.0.3 
connecting to: mydb 
{ "n" : 0, "connectionId" : 1, "err" : null, "ok" : 1 } 
{ 
    "user" : "guest", 
    "readOnly" : true, 
    "pwd" : "b90ba46d452e5b5ecec64cb64ac5fd90", 
    "_id" : ObjectId("4fbea2b013aacb728754fe10") 
} 

udpate:
db.addUser deprecato dal 2,6
https://docs.mongodb.com/v2.6/reference/method/db.addUser/

uso db.createUser invece:

// file.js 
db.createUser(
    { 
    user: "guest", 
    pwd: "passwordForGuest", 
    roles: [ { role: "read", db: "mydb" } ] 
    } 
) 

$ mongo mydb file.js

+0

In che modo i ruoli possono essere assegnati in questo modo? Il comando addUser della shell sembra incoerente: richiede solo un singolo parametro di documento. http://docs.mongodb.org/manual/tutorial/add-user-administrator/ Ci sono documenti API per Javascript (rispetto alla shell). Il link qui: http://api.mongodb.org/js/current/ non contiene documentazione vera e propria. – user48956

+0

Dovresti fare una domanda, se hai una domanda, poiché questa non è correlata a questa risposta. – AD7six

+0

Sembra che 'addUser()' sia stato deprecato ed è stato sostituito da 'createUser()'. – twiz

0

http://www.mongodb.org/display/DOCS/Scripting+the+shell

o scrivere uno script utilizzando il vostro linguaggio di scripting preferito utilizzando il driver di MongoDB dipendente lingua correlato.

+1

Sono downvoting perché non hai letto la domanda e collegato una pagina che l'utente ha letto e non fornisce una risposta. –

2

Ecco una soluzione più semplice ed elegante:

echo 'db.addUser("<username>", "<password>");' | mongo <database> 

Testato con MongoDB 2.4.8

Problemi correlati