Frage

Ich versuche, MongoDB, um herauszufinden, zu beurteilen, ob es sich um eine Strecke ist, würde ich für zukünftige Anwendungen zu übernehmen wollen oder nicht. Um es auf meinem Server sinnvoll einzusetzen, würde ich es aktiviert mit Authentifizierung laufen müssen (das heißt mit dem --auth Argument oder mit auth = true in der Konfigurationsdatei).

Installation scheint relativ straightfoward und ich habe aus der Dokumentation mit Hilfe vorangekommen, wo nötig. Insbesondere rel="nofollow die Abschnitt auf Sicherheit eine ziemlich gute Arbeit zu erklären, tut der Prozess mit auth läuft aktiviert und Ihren ersten Admin-Benutzer einfügen. Allerdings haben sich die Dinge nicht planmässig voran.

Ausführen ohne Auth ergibt das Ergebnis einer für hoffen - es läuft, mit der folgenden Ausgabe:

Thu Dec 10 21:14:24 Mongo DB : starting : pid = 9350 port = 27017 dbpath = /var/mongodb_data master = 0 slave = 0  64-bit 
Thu Dec 10 21:14:24 db version v1.3.0-, pdfile version 4.5
Thu Dec 10 21:14:24 git version: 32d56f6d81a98b569103149c9ffea9f25a1ece81
Thu Dec 10 21:14:24 sys info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_37
Thu Dec 10 21:14:24 waiting for connections on port 27017

Allerdings läuft mit Authentifizierung (entweder mit Methoden, Arg oder Konfigurationsrichtlinie) ergibt die folgende Ausgabe und der Prozess sofort beendet:

Thu Dec 10 21:15:37 Mongo DB : starting : pid = 9361 port = 27017 dbpath = /var/mongodb_data master = 0 slave = 0  64-bit 
Thu Dec 10 21:15:37 User Exception unauthorized
Thu Dec 10 21:15:37  local.system.namespaces  Caught Assertion in runQuery ns:local.system.namespaces userassert:unauthorized
Thu Dec 10 21:15:37   ntoskip:0 ntoreturn:0
Thu Dec 10 21:15:37   query:{ name: /^local.temp./ }
Thu Dec 10 21:15:37 query local.system.namespaces ntoreturn:0 exception  0ms
Thu Dec 10 21:15:37 Dropping old temporary collection: 
Thu Dec 10 21:15:37 User Exception no collection name
Thu Dec 10 21:15:37   exception in initAndListen std::exception: no collection name, terminating
Thu Dec 10 21:15:37  dbexit: 
Thu Dec 10 21:15:37   shutdown: going to flush oplog...
Thu Dec 10 21:15:37   shutdown: going to close sockets...
Thu Dec 10 21:15:37   shutdown: waiting for fs...
Thu Dec 10 21:15:37   shutdown: closing all files...
Thu Dec 10 21:15:37      closeAllFiles() finished
Thu Dec 10 21:15:37   shutdown: removing fs lock...
Thu Dec 10 21:15:37  dbexit: really exiting now
ERROR: Client::shutdown not called!

Wie in den Tags darauf hingewiesen, das auf OS X Snow Leopard läuft, und es wird die neueste 1.3.x nächtlichen OS X 64-Bit-Binär-Download verwenden (sollte ich auf 1,2 zurückkommen stabil vielleicht?)

Jede Idee, was verursacht das und was ich tun kann, um es zu lösen? Es ist nicht so wichtig, auf meinem lokalen Rechner, aber ich brauche es im sicheren Modus zu arbeiten, um es überhaupt für jeden produktiven Einsatz praktikabel zu machen.


PS: wenn diese auf ServerFault anstatt so sein sollte, fühlen sich frei, um es dort zu haben bewegt. Ich war nicht sicher, welche Umgebung es am besten geeignet ist.


Update:

Ich habe versucht, ohne Auth ausgeführt wird, das Hinzufügen eines Benutzers und erneuten Ausführung mit Auth wie mdirolf und Mathias empfohlen. Allerdings wirft seine immer noch die gleichen Fehler auf. Der Benutzer wurde in folgenden Weise hinzugefügt:

Mark@Destiny mongodb$ sudo bin/mongo
MongoDB shell version: 1.3.0-
url: test
connecting to: test
type "help" for help
> use admin
switched to db admin
> db.addUser("Mark", "my-password-went-here")   
{ "user" : "Mark", "pwd" : "9934...be15da0" }
> db.system.users.find()
{ "_id" : ObjectId("4b216ed0be8a0b185767654e"), "user" : "Mark", "pwd" : "9934a190b...babe15da0" }
> exit
bye

Im Anschluss läuft ohne Auth und Eingabe des Mongo Mantel beweisen die Benutzer in der Tat ist immer noch da. Mache ich etwas dumm?

War es hilfreich?

Lösung

Ahh, sieht aus wie Sie einen Bug in Master gefunden. Ich habe einen Fall für sie erstellt: http://jira.mongodb.org/browse/SERVER -474 .

Bitte versuchen Sie die kürzlich veröffentlichten mongodb 1.2.0. Git-Master (1.3.x-Zweig) ist nicht gebrauchsfertig vor.

Andere Tipps

Sie müssen bereits einen Benutzer im Admin-DB haben, bevor Sie den Server mit --auth starten. Habe ich nur noch eine Anmerkung zu der Dokumentation zu erwähnen, das so sonst niemand überrascht ist.

Durch die Art und Weise, die meisten (wenn nicht alle) Produktion mongodb Implementierungen laufen ohne Auth. Wir empfehlen die Handhabung Authentifizierung in Ihrer Anwendung und Konfiguration der Firewall auf Ihrem Datenbankserver erlauben nur Verbindungen von Ihrer Web / app-Servern.

Sie benötigen einen Benutzer hinzufügen, bevor mit --auth starten. Start ohne --auth und fügen Sie einen Benutzer, starten Sie dann mit --auth.

Die Sicherheitsabteilung wurde aktualisiert, dies zu beschreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top