Mongo Spark连接器和mongo 3.2,root用户无法读取数据库

har*_*sin 4 mongodb apache-spark

我使用官方mongo火花连接器.

  • 我的火花版是2.0
  • 我的mongo版本是3.2.x.
  • 我的spark mongo连接器是1.1.0

在我的数据库中,我有一个管理员具有root角色,所以他没事.

我创建了一个配置如下:

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

但是当我尝试读取一些数据时,我收到一条"未授权执行命令"的错误.

我不明白为什么我的root用户没有被授权.

Ros*_*oss 6

这是因为"spark.mongodb.auth.uri"不是配置设置.

由于输入uri没有验证参数,因此未授权读取.

尝试:

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

要么:

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