MongoDB在Ubuntu上的权限设置怎么做
导读:Ubuntu 上 MongoDB 权限设置实操指南 一 启用访问控制与网络限制 编辑配置文件 /etc/mongod.conf,开启认证并限制监听地址: 网络:仅本地访问net: port: 27017 bindIp: 127....
Ubuntu 上 MongoDB 权限设置实操指南
一 启用访问控制与网络限制
- 编辑配置文件 /etc/mongod.conf,开启认证并限制监听地址:
- 网络:仅本地访问
net: port: 27017 bindIp: 127.0.0.1 - 安全:启用授权
security: authorization: enabled
- 网络:仅本地访问
- 重启服务使配置生效:
sudo systemctl restart mongod - 说明:如未来需要远程访问,可将 bindIp 改为服务器内网地址(如 192.168.x.x)或使用 0.0.0.0 并配合防火墙与 TLS;生产环境不建议直接开放到公网。
二 创建管理员与数据库用户
- 使用 mongosh 连接本地实例(未启用认证时可直连;若已启用,请使用具有管理员权限的账户):
mongosh - 在 admin 库创建管理员(具备用户管理权限):
use admin db.createUser({ user: "admin", pwd: "StrongPass!23", roles: [{ role: "userAdminAnyDatabase", db: "admin" } ] } ) - 为业务库创建最小权限用户(示例为 mydb 的读写用户):
use mydb db.createUser({ user: "mydbuser", pwd: "AnotherPass!45", roles: [{ role: "readWrite", db: "mydb" } ] } ) - 说明:也可以在业务库使用 dbOwner 角色获取该库内更完整的权限(含用户管理);删除用户需切到对应用户所在的库执行 db.dropUser(“用户名”)。
三 连接与验证权限
- 管理员连接:
mongosh -u admin -p StrongPass!23 --authenticationDatabase admin - 业务用户连接(注意指定认证库为对应用户所在库):
mongosh -u mydbuser -p AnotherPass!45 --authenticationDatabase mydb # 或带库名直连 mongosh mongodb://mydbuser:AnotherPass!45@localhost:27017/mydb - 验证权限:
- 在 mydb 中执行写入并查看用户列表:
use mydb db.test.insertOne({ x: 1 } ) show users - 若提示认证失败,请核对用户名、密码、认证库是否为创建该用户时所在的库。
- 在 mydb 中执行写入并查看用户列表:
四 常见问题与排查
- 启用了 authorization: enabled 后无法登录:先用具有管理员权限的账户登录到 admin 库,再为业务库创建用户或调整角色。
- 忘记管理员密码或权限混乱:在 /etc/mongod.conf 中临时将 security.authorization 注释或设为 disabled,重启服务后进入 mongosh 重置用户与角色,再恢复配置并重启。操作前务必做好数据备份。
- 远程连接被拒绝:检查 bindIp 是否包含客户端网段、云服务器安全组/防火墙是否放行 27017,并尽量使用 TLS 加密传输。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB在Ubuntu上的权限设置怎么做
本文地址: https://pptw.com/jishu/748784.html
