You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot整合Hibernate OGM操作MongoDB时persistence.xml认证库不匹配问题

问题根因

你的猜测完全正确,报错的核心原因是:

  • 你创建的test用户归属的认证数据库是TestDB,但Hibernate OGM默认使用admin库作为MongoDB的身份认证源,因此认证请求发错了库导致验证失败。
  • 之前使用useradmin账号时没有认证报错,是因为这个用户本身就是创建在admin库下,刚好匹配默认的认证源,只是该账号没有TestDB的读写权限所以后续操作报错。

修复方案

在你的persistence.xml的properties节点下,新增指定认证数据库的配置项即可:

<property name="hibernate.ogm.mongodb.authentication_database" value="TestDB" />

修改后的完整properties配置如下:

<properties>
    <property name="hibernate.ogm.datastore.provider" value="MONGODB" />
    <property name="hibernate.ogm.datastore.database" value="TestDB" />
    <property name="hibernate.ogm.datastore.create_database" value="true" />
    <property name="hibernate.ogm.datastore.host" value="127.0.0.1" />
    <property name="hibernate.ogm.datastore.port" value="27017" />
    <property name="hibernate.ogm.datastore.username" value="test"/>
    <property name="hibernate.ogm.datastore.password" value="test123"/>
    <!-- 新增指定认证数据库 -->
    <property name="hibernate.ogm.mongodb.authentication_database" value="TestDB" />
</properties>

额外注意事项

你粘贴的创建useradmin用户的代码中,pwd: "password, 漏写了结尾的双引号,若这是你实际创建用户时的错误需要修正,只是粘贴笔误可忽略。

内容的提问来源于stack exchange,提问作者KilledByCheese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:06:00