当前位置: 首页 > 知识库问答 >
问题:

Mongo查询失败,错误代码为13,错误消息为“未授权”

弓晔
2023-03-14

当我试图在mLab上查询mongo实例时出错。我从Spring启动应用程序中请求它。到数据库的连接是稳定的。下面是控制台的日志。

监控线程成功连接到服务器,说明服务器描述{地址=ds131531.mlab.com:31531,类型=REPLICA_SET_PRIMARY,状态=CONNECTED,ok=true,version=ServerVersion{versionList=[3,4,15]},minWireVersion=0,maxWireVersion=5,maxDocumentsize=16777216,logicalSessionTimeoutMinute=null,roundTripTimeNanos=138364906,setName='rs-ds131531',canonical地址=ds131531-a.mlab.com:31531,主机=[ds131531-a.mlab.com:31531],被动类=[],仲裁者=[],主类='ds131531-a.mlab.com:31531',tagSet=TagSet{[]},seltionId=7fffffff0000000000000001,setVersion=1,lastWriteDate=Wed Jul18 15:22:37CEST 2018,lastUpdateTimeNanos=20828794373992}

这是确切的错误信息

查询失败,错误代码为13,错误消息为“pizza store未授权在服务器ds131531上执行命令{find:“product”,filter:{},batchSize:2147483647}”。姆拉布。com:31531;嵌套的异常是com.mongodb.MongoQueryException:查询失败,错误代码为13,错误消息为“pizza store未授权在服务器ds131531上执行命令{find:“product”,筛选器:{},batchSize:2147483647}”。姆拉布。通讯:31531

如果我从mongo shell进行同样的查询,一切都很好。我已经向正在发出请求的用户添加了readWrit角色和我自定义的readProducts角色,但没有任何帮助。dbOwner和read是内置角色。

用户mongo角色:

"_id" : "pizza-db.kubiakb",
"user" : "kubiakb",
"db" : "pizza-db",
"roles" : [
    {
        "role" : "readProduct",
        "db" : "pizza-db"
    },
    {
        "role" : "read",
        "db" : "pizza-db"
    },
    {
        "role" : "dbOwner",
        "db" : "pizza-db"
    }
]

readProduct角色

{
"role" : "readProduct",
"db" : "pizza-db",
"isBuiltin" : false,
"roles" : [ ],
"inheritedRoles" : [ ],
"privileges" : [
    {
        "resource" : {
            "db" : "pizza-db",
            "collection" : "product"
        },
        "actions" : [
            "find"
        ]
    }
],
"inheritedPrivileges" : [
    {
        "resource" : {
            "db" : "pizza-db",
            "collection" : "product"
        },
        "actions" : [
            "find"
        ]
    }
]

}

编辑:Springapplication.properties

spring:
  profiles: heroku
  data:
    mongodb:
      uri: mongodb://login:pass@ds131531.mlab.com:31531/pizza-db

共有2个答案

时浩波
2023-03-14

我在另一个数据库上创建了带有角色的用户。我花了几个小时才得到它。我知道你修复了,但也许可以帮助其他人开发。

db.createUser({user: "right_user", pwd: "right_pass",
roles: [{ role: "readWrite", db: "WRONG_DB" }], passwordDigestor: "server", mechanisms: ["SCRAM-SHA-1","SCRAM-SHA-256"]})
赫连心思
2023-03-14

问题解决了。问题是我的申请上有更多的个人资料。yml文件,我没有在配置文件heroku中声明数据库名称,所以它从默认配置文件中读取数据库名称。下面是应用程序。yml文件

spring:
    data:
      mongodb:
        database: pizza-store
        uri: mongodb://localhost:27017

price-point-multiplier : 0.1

---
spring:
  profiles: docker
  data:
    mongodb:
      database: pizza-store
      uri: mongodb://mongodb:27017

---
spring:
  profiles: heroku
  data:
    mongodb:
      uri: ${MONGODB_URI}
 类似资料:
  • 我试图通过Java Apachebeam MongoDbIO连接器连接到MongoDB,得到一个“未授权”错误。 同样的连接细节也适用于Python并能够检索数据。 “org.apache.beam.sdk.io.mongodbo.mongodbio$boundedmongodbsource.$closeresource(Mongodbio.java:407)位于org.apache.beam.s

  • 请帮帮我!我找不到此问题的任何解决方案 “/”应用程序中的服务器错误。< br >编译错误< br >描述:编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改您的源代码。 编译器错误消息: 编译器失败,错误代码为-2146232576。 显示详细的编译器输出: C:\Windows\System32\inetsrv 版本信息: 微软 .NET 框架版本:4.0.30319;AS

  • 我正在尝试使用以下查询更新表 但是,得到以下异常: 当我使用这样的更新给出子句时,它更新了该特定项。 有人能指出为什么我不能执行查询和如何解决这个问题吗?

  • 这不是重复的问题 首先,我确保有以下配置: 已安装:go get-u google。戈朗。组织/grpc 外观原型: Proc-gen-go已安装并存在于$GOPATH/bin中 去找github。com/golang/protobuf/protoc gen go 问题:当我执行以下命令时 发生错误: 哪里有问题,请掌握指导。

  • 我最近在部署到我们的共享主机时遇到了问题。从 Visual Studio 通过 Web 部署进行部署时,99% 的时间我在登录后在登录页面或主页上收到此错误。有时我可能会点击几下不同的部分,然后它就会击中。它通常会在几分钟到90分钟后消失。 运行Windows Server 2012 R2 Standard、IIS8和.NET 4.5的Web主机。 Web主机建议我需要使用Visual Studi