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

如何配置MongoDB认证以实现类似Atlas的任意数据库URI连接

服务器部署MongoDB后通过URI连接的认证问题

配置过程

我需要在服务器部署MongoDB,希望能像Atlas那样通过数据库URI连接,支持的URI格式示例如下:

mongodb://<uname>:<password>@ip_addr:27017
mongodb://<uname>:<password>@ip_addr:27017/admin
mongodb://<uname>:<password>@ip_addr:27017/test
mongodb://<uname>:<password>@ip_addr:27017/any_database

我按以下步骤配置认证:

  1. 修改/etc/mongod.conf启用授权:
security:
  authorization: enabled
  1. 启用授权前,在admin库创建超级用户:
> mongosh
> use admin
> db.createUser({user:"root",pwd:"pass1234",roles:["root"]})
  1. 重启mongod服务:
systemctl restart mongod

遇到的问题

认证功能已生效,但仅能通过以下两个URI成功连接:

  • mongodb://root:root1234@ip_addr:27017
  • mongodb://root:root1234@ip_addr:27017/admin

使用以下URI连接时会出现认证错误:

  • mongodb://root:root1234@ip_addr:27017/test
  • mongodb://root:root1234@ip_addr:27017/any_database(期望像Atlas一样,若目标数据库不存在则自动创建,且root用户本应拥有创建任意数据库的权限)

我尝试给该用户添加userAdminAnyDatabase、dbAdminAnyDatabase、readWriteAnyDatabase等角色,未指定具体数据库,但执行db.getUsers()时发现所有用户都关联到admin数据库。想问创建超级用户时哪里出错了?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:45:00