我使用官方的 mongo spark 连接器。
- 我的spark版本是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"))
但是当我尝试读取一些数据时,出现错误“未授权执行命令。”
我不明白为什么我的 root 用户没有被授权。
最佳答案
这是因为 "spark.mongodb.auth.uri"
不是配置设置。
由于输入 uri 没有身份验证参数,因此读取未被授权。
尝试:
val readConfig = ReadConfig(Map(
"uri" -> "mongodb://<userName>:<password>@<ip>:27017/myDatabase.myCollection?authSource=admin"))
或者:
val readConfig = ReadConfig(Map(
"uri" -> "mongodb://<userName>:<password>@<ip>:27017", // uses the default db to auth against (admin)
"database" -> "myDatabase",
"collection" -> "myCollection"))
关于mongodb - Mongo Spark连接器和mongo 3.2,root用户无法读取数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39576857/