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

Spring Boot连接MongoDB遭遇MongoSecurityException认证异常

解决Spring Boot连接MongoDB的认证异常问题

从你提供的日志和配置来看,应用已经成功和MongoDB建立了连接,但在用户认证环节失败,抛出了MongoSecurityException。下面是几个针对性的排查和解决步骤:

1. 补充认证数据库配置

MongoDB的用户是与特定数据库绑定的——通常管理员用户是在admin数据库下创建的,但你的配置里没有指定认证时使用的数据库,Spring Boot会默认用你配置的业务数据库(VanGuardAuth_DB_AWS_0001)去做认证,这就会导致失败。

修改你的application.properties,添加authentication-database配置:

spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: VanGuardAuth_DB_AWS_0001
      username: myUserAdmin
      password: sce@3456@345
      authentication-database: admin

2. 处理密码中的特殊字符

你的密码包含@符号,在application.properties文件中这类特殊字符可能会被解析错误,导致实际传递给MongoDB的密码不正确。这种情况下,推荐使用URI格式配置连接信息,记得把@转义为%40:

spring:
  data:
    mongodb:
      uri: mongodb://myUserAdmin:sce%403456%40345@localhost:27017/VanGuardAuth_DB_AWS_0001?authSource=admin

3. 验证用户权限是否正确

如果上面两步都没用,先手动验证你的用户是否能正常访问目标数据库:
打开终端执行以下命令登录MongoDB:

mongo -u myUserAdmin -p sce@3456@345 --authenticationDatabase admin VanGuardAuth_DB_AWS_0001

如果登录失败,说明用户没有该数据库的访问权限,需要给用户授权:

use admin
db.auth("myUserAdmin", "sce@3456@345")
# 给用户授予目标数据库的读写权限
db.grantRolesToUser("myUserAdmin", [{ role: "readWrite", db: "VanGuardAuth_DB_AWS_0001" }])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:48:10