用户权限和连接字符串
生产环境不要裸奔 MongoDB。
至少要做到:
- 开启认证。
- 给业务创建专用用户。
- 不用 root 用户连接业务库。
- 不把数据库端口直接暴露到公网。
- 密码放到环境变量或密钥管理系统。
一、连接字符串格式
本地无认证连接:
带用户名密码:
常见部分:
如果用户创建在 admin 数据库,authSource 就写 admin。
二、创建业务用户
进入 mongosh 后切换业务数据库:
创建用户:
passwordPrompt() 会在命令行提示输入密码,比把明文密码写在命令里更安全。
三、连接业务库
实际项目里不要直接把密码写进代码。
可以放到环境变量:
四、常见内置角色
后端应用通常只需要业务库的 readWrite。
不要用 root 账号跑业务服务。
五、Docker 学习环境里的认证
如果使用 Docker Hub 的 mongo 镜像,可以用环境变量初始化 root 用户:
连接:
这适合本地学习认证流程。
生产环境还要考虑网络隔离、磁盘持久化、备份、监控和访问控制。

