命令失败,错误 13(未授权):'未授权
Posted
技术标签:
【中文标题】命令失败,错误 13(未授权):\'未授权【英文标题】: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”在”
【问题讨论】:
【参考方案1】:如果相同的细节在 Python SDK 中有效,我建议提交一个错误,并附上重现问题的步骤。我没有找到any existing bug for Java's MongoDbIO。有关如何提交错误的信息,请参阅https://beam.apache.org/community/contact-us/。
【讨论】:
【参考方案2】:splitVector 是 MongoDB 内部命令,不应从驱动程序调用。
【讨论】:
以上是关于命令失败,错误 13(未授权):'未授权的主要内容,如果未能解决你的问题,请参考以下文章