【问题标题】:Command failed with error 13 (Unauthorized): 'not authorized命令失败,错误 13(未授权):'未授权
【发布时间】:2021-09-07 05:31:52
【问题描述】:

我正在尝试通过 Java Apachebeam MongoDbIO 连接器连接到 MongoDB,收到“未授权”错误。

相同的连接详细信息适用于 Python,并且能够检索数据。

任何建议都会有所帮助

错误:

021-06-23 17:59:09.041 来自工作人员的 CESTError 消息:com.mongodb.MongoCommandException:命令失败,错误 13(未经授权):'未在 test-direkt-dev 上授权执行命令 { splitVector:“test -direkt-dev.taskLog", keyPattern: { _id: 1 }, force: false, maxChunkSize: 21, $db: "test-direkt-dev", $clusterTime: { clusterTime: Timestamp(1624463948, 23), 签名: { hash: BinData(0, C92C5EEC1265B01EDB9B51DFC24BAB98D85EAE0D), keyId: 6911535624117813250 } }, lsid: { id: UUID("05eedc7a-f719-49b5-8c53-3d520dc772c4") }, Prefer $"readPreference} on "primary"服务器 172.29.156.26:27017。完整的响应是 { "operationTime" : { "$timestamp" : { "t" : 1624463948, "i" : 31 } }, "ok" : 0.0, "errmsg" : "not authorized on test-direkt-dev to执行命令 { splitVector: "test-direkt-dev.taskLog", keyPattern: { _id: 1 }, force: false, maxChunkSize: 21, $db: "test-direkt-dev", $clusterTime: { clusterTime: Timestamp( 1624463948,23),签名:{哈希:BINDATA(0,C92C5EEC1265B01EDB9B51DFC244BAB98D85EAE0D),LSID:{ID:UUID(“05EDC7A-F719-49B5-8C53-3D520DC772C4”)},$ ReadPreference:{Mode: “primaryPreferred” } }”,“code”:13,“codeName”:“未授权”,“$clusterTime”:{“clusterTime”:{“$timestamp”:{“t”:1624463948,“i”:31} },“签名”:{“哈希”:{“$binary”:“ySxe7BJlsB7bm1HfwkurmNherg0=”,“$type”:“00”},“keyId”:{“$numberLong”:“6911535624117813250”}}}}

代码:

return pipeline.apply(MongoDbIO.read()
                       .withUri("mongodb://testuser:testpass1@88.200.92.195:27017")
                               .withDatabase("test-direkt-dev")
                               .withCollection("taskLog"));

感谢您的更新。

根据文档, https://beam.apache.org/releases/javadoc/2.13.0/org/apache/beam/sdk/io/mongodb/MongoDbIO.Read.html
如果使用 username:password@ 语法,则需要传递数据库名称“/database name”。

  return pipeline.apply(MongoDbIO.read()
        .withUri("mongodb://testuser:testpass1@88.200.92.195:27017/test-direkt-dev")
    .withDatabase("test-direkt-dev")
    .withCollection("taskLog"));

这一次,我收到以下错误:

“org.apache.beam.sdk.io.mongodb.MongoDbIO$BoundedMongoDbSource.$closeResource(MongoDbIO.java:407) 在 org.apache.beam.sdk.io.mongodb.MongoDbIO$BoundedMongoDbSource.split(MongoDbIO. java:537) ... 15 更多原因:com.mongodb.MongoCommandException:命令失败,错误 18 (AuthenticationFailed):“身份验证失败。”在服务器 88.200.92.195:27017 上。完整的响应是 { "operationTime" : { "$timestamp" : { "t" : 1624636024, "i" : 24 } }, "ok" : 0.0, "errmsg" : "Authentication失败。”,“code”:18,“codeName”:“AuthenticationFailed”,“$clusterTime”:{“clusterTime”:{“$timestamp”:{“t”:1624636024,“i”:24}},“签名”:{“哈希”:{“$binary”:“8a1nBS/Wmd5z1SHqhLKnW7Y/g7I=”,“$type”:“00”},“keyId”:{“$numberLong”:“6911535624117813250”}}}}在”

【问题讨论】:

    标签: java mongodb apache-beam dataflow


    【解决方案1】:

    如果相同的细节在 Python SDK 中有效,我建议提交一个错误,并附上重现问题的步骤。我没有找到any existing bug for Java's MongoDbIO。有关如何提交错误的信息,请参阅https://beam.apache.org/community/contact-us/

    【讨论】:

      【解决方案2】:

      splitVector 是 MongoDB 内部命令,不应从驱动程序调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-26
        • 2023-02-23
        • 1970-01-01
        • 2014-12-28
        • 1970-01-01
        • 2016-03-16
        相关资源
        最近更新 更多