2012-05-24 44 views
5

Estoy en proceso de configurar mongodb, y usamos títere para controlar la configuración de nuestros servidores.¿Cómo puedo usar un script para crear usuarios en mongodb?

He configurado la mayoría de las cosas como las necesito, pero necesito crear el usuario dentro de la base de datos de mongo.

sé cómo hacer esto utilizando la consola mongo, y sé que puedo hacerlo usando javascript/a Js usando el comando

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

Sin embargo, he sido incapaz de encontrar un sólido ejemplo de lo que se necesita para hacer esto en javascript. Más al punto, necesito poder agregar un usuario desde la línea de comando, usando algún tipo de script de shell.

Si alguien pudiera

a) me punto a algunos ejemplos de sólidos usando javascript con MongoDB y

b) ¿cómo puedo hacer esto desde la línea de comandos I?

Respuesta

11

CLI de Mongo que sí dice cómo usarlo con un archivo js

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

uso: Mongo [opciones] [dirección db] [nombres de archivo (que termina en Js)]

Por ejemplo:

$ 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 obsoleta desde 2,6
https://docs.mongodb.com/v2.6/reference/method/db.addUser/

uso db.createUser lugar:

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

$ mongo mydb file.js

+0

¿Cómo se pueden asignar los roles de esta manera? El comando shell addUser parece inconsistente, solo toma un único parámetro de documento. http://docs.mongodb.org/manual/tutorial/add-user-administrator/ ¿Hay documentos API para Javascript (frente al shell)? El enlace aquí: http://api.mongodb.org/js/current/ no contiene documentación real. – user48956

+0

Debe hacer una pregunta, si tiene alguna pregunta, ya que eso no está relacionado con esta respuesta. – AD7six

+0

Parece que 'addUser()' ha quedado en desuso y ha sido reemplazado por 'createUser()'. – twiz

0

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

o escribir una secuencia de comandos con su lenguaje de script favorito mediante el controlador de MongoDB dependiente de la lengua correspondiente.

+1

Estoy bajando la votación porque no ha leído la pregunta y ha vinculado una página que el usuario ha leído y no proporciona una respuesta. –

2

Aquí es una solución más sencilla y elegante:

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

Probado con MongoDB 2.4.8

Cuestiones relacionadas