MongoDB启用认证后无凭据仍可连接存储数据的问题求助
MongoDB认证配置后无凭据仍可连接读写的解决办法
核心问题:配置修改未生效
你修改了mongod.cfg中的authorization: "enabled"但未重启MongoDB服务,这个配置必须重启服务才会生效。当前运行的MongoDB进程还是沿用默认的无认证模式,所以无凭据的连接依然能成功读写数据。
解决步骤
1. 重启MongoDB服务
在Windows系统中按以下操作:
- 按下
Win + R,输入services.msc打开服务管理器 - 找到名称为**MongoDB Server (MongoDB)**的服务
- 右键点击该服务,选择「重启」
2. 验证认证是否生效
重启后,用无凭据的连接字符串测试:
mongoose.connect("mongodb://127.0.0.1:27017/posts")
此时应该抛出认证失败的错误,符合你预期的无权限访问结果。
3. 修正用户权限配置(可选)
你创建的用户角色是userAdminAnyDatabase,这个角色仅拥有管理用户的权限(比如创建、删除用户),没有读写posts数据库数据的权限。如果需要该用户能操作posts数据,需要补充readWrite角色:
use admin db.updateUser( "Admin", { roles: [ { role: "userAdminAnyDatabase", db: "posts" }, { role: "readWrite", db: "posts" } ] } )
额外排查项
- 确认配置文件路径:打开服务管理器,右键MongoDB服务→属性→查看「可执行文件路径」后的
--config参数,确保指向的是你修改的C:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg - 清理多余进程:打开任务管理器,检查是否有额外的
mongod.exe进程在运行,避免手动启动的进程使用默认无认证配置
内容的提问来源于stack exchange,提问作者Mahmoud Mirzaei
相关产品推荐
相关产品推荐

