2016-09-19 3 views
2

Ich benutze die offizielle Mongo Spark Connector.Mongo Spark Connector und Mongo 3.2, root Benutzer kann nicht Datenbank lesen

  • meine Funke Version 2.0
  • meine Mongo Version 3.2.x ist
  • mein Funken Mongo-Anschluss ist 1.1.0

Auf meiner Datenbank i ein Admin mit Root-Rolle haben, so er hat alles in Ordnung.

i eine Config erstellt haben, wie folgt:

 val readConfig = ReadConfig(Map("spark.mongodb.auth.uri" -> "mongodb://<userName>:<password>@<ip>:27017/admin", 
"spark.mongodb.input.uri" -> "mongodb://<ip>:27017/MyDatabase.myCollection")) 

aber wenn ich versuche, einige Daten i einen Fehler zu lesen „nicht Befehl auszuführen autorisiert.“

ich verstehe nicht, warum mein root-Benutzer nicht autorisiert ist.

Antwort

3

Es ist, weil "spark.mongodb.auth.uri" keine Konfigurationseinstellung ist.

Da die Eingabe-URI nicht über die Authentifizierungsparameter verfügt, ist das Lesen nicht zulässig.

Versuchen:

val readConfig = ReadConfig(Map(
    "uri" -> "mongodb://<userName>:<password>@<ip>:27017/myDatabase.myCollection?authSource=admin")) 

oder:

val readConfig = ReadConfig(Map(
    "uri" -> "mongodb://<userName>:<password>@<ip>:27017", // uses the default db to auth against (admin) 
    "database" -> "myDatabase", 
    "collection" -> "myCollection")) 
+1

danke, die erste Option arbeiten perfekt :)! – harksin

+0

Wie kann ich mit ReadConfig auf Mongodb abfragen, um eine vollständige Tabellensuche zu vermeiden? – Akki

+0

Akki - vielleicht in einer neuen Frage fragen. Anstatt in einem Kommentar nach einem alten zu fragen. – Ross

Verwandte Themen