2012-05-24 14 views
5

Jestem w trakcie tworzenia mongodb, a używamy lalek do kontrolowania konfiguracji naszych serwerów.Jak mogę użyć skryptu do tworzenia użytkowników w mongodb?

Mam wiele rzeczy skonfigurowanych, jak ich potrzebuję, ale muszę utworzyć użytkownika wewnątrz bazy danych mongo.

wiem jak to zrobić za pomocą powłoki Mongo, i wiem, że mogę to zrobić przy użyciu JavaScript/A .js za pomocą polecenia

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

Jednak nie udało mi się znaleźć solidną przykład tego, co jest potrzebne, aby to zrobić w javascript. Co więcej, potrzebuję móc dodać użytkownika z linii poleceń, używając jakiegoś skryptu powłoki.

Jeśli ktoś mógłby

a) wskazać mi kilka przykładów stałych przy użyciu javascript z MongoDB i

b) w jaki sposób mogę to zrobić z wiersza polecenia?

Odpowiedz

11

CLI Mongo opowiada cię samą, jak używać go z pliku js

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

Wykorzystanie: Mongo [opcje] [adres db] [nazwa pliku (kończący się w js)]

na przykład:

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

użycie db.createUser zamiast:

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

$ mongo mydb file.js

+0

Jak role mogą być przypisane w ten sposób? Polecenie addUser powłoki wydaje się niespójne - wymaga tylko jednego parametru dokumentu. http://docs.mongodb.org/manual/tutorial/add-user-administrator/ Czy istnieją dokumenty API dla JavaScript (w porównaniu do powłoki). Link tutaj: http://api.mongodb.org/js/current/ nie zawiera aktualnej dokumentacji. – user48956

+0

Powinieneś zadać pytanie, jeśli masz pytanie, ponieważ nie ma to związku z tą odpowiedzią. – AD7six

+0

Wygląda na to, że 'addUser()' jest przestarzałe i zostało zastąpione przez 'createUser()'. – twiz

0

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

lub napisać skrypt, za pośrednictwem swojego ulubionego języka skryptowego stosując odpowiednie zależne od języka sterownik MongoDB.

+1

Zignorowałem, ponieważ nie przeczytałeś pytania i połączyłem stronę, którą przeczytał użytkownik, i nie dostarczyłem odpowiedzi. –

2

Tutaj jest bardziej proste i eleganckie rozwiązanie:

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

Testowane z MongoDB 2.4.8

Powiązane problemy