Ubuntu MongoDB的权限管理如何实现

Ubuntu 上 MongoDB 权限管理实操指南一 启用认证与基础安全编辑配置文件(常见路径:/etc/mongod.conf 或 /etc/mongodb.conf),在顶层加入:security:authorization: “enabled”重启服务(Ubuntu 16.04+/使用 systemd 的版本):sudo systemctl restart mongod说明:MongoDB

Ubuntu 上 MongoDB 权限管理实操指南

一 启用认证与基础安全

  • 编辑配置文件(常见路径:/etc/mongod.conf/etc/mongodb.conf),在顶层加入:
    security:
      authorization: "enabled"
    
  • 重启服务(Ubuntu 16.04+/使用 systemd 的版本):
    sudo systemctl restart mongod
    
  • 说明:MongoDB 默认不启用认证;启用后,所有客户端连接都需要提供凭据。旧版本也可用命令行参数 –auth 启动以开启认证。

二 创建管理员与业务用户

  • 连接 Shell:
    mongosh --host 127.0.0.1 --port 27017
    
  • admin 库创建管理员(具备用户管理能力,谨慎分配):
    use admin
    db.createUser({
      user: "admin",
      pwd: "StrongPass!23",
      roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    })
    
  • 在业务库创建用户(示例对 my_db 赋予读写与库级管理):
    use my_db
    db.createUser({
      user: "app_user",
      pwd: "AppPass!45",
      roles: [
        { role: "readWrite", db: "my_db" },
        { role: "dbAdmin",   db: "my_db" }
      ]
    })
    
  • 说明:用户是与数据库绑定的,创建与认证通常在该库上下文执行;删除用户也需先切到对应用户所在的库。

三 连接与验证权限

  • 使用创建的用户连接:
    mongosh "mongodb://app_user:AppPass!45@127.0.0.1:27017/my_db"
    

    或在已连上的 Shell 中认证:

    use my_db
    db.auth("app_user", "AppPass!45")
    
  • 验证权限示例:
    use my_db
    show collections
    db.mycoll.insertOne({x:1})
    
  • 常见内置角色选择:
    • read:只读
    • readWrite:读写
    • dbAdmin:库级管理(索引、统计等,不含用户管理)
    • dbOwner:库级“所有者”(含 readWrite + dbAdmin + userAdmin 的组合)
    • userAdmin / userAdminAnyDatabase:用户与角色管理
    • root:超级用户(慎用)

四 用户维护与常用命令

  • 修改密码:
    use admin
    db.changeUserPassword("app_user", "NewPass!67")
    
  • 查看某库用户:
    use my_db
    show users
    
  • 删除用户:
    use my_db
    db.dropUser("app_user")
    
  • 说明:这些操作需具备相应权限(如 userAdmin 或库级 dbOwner)。

五 安全实践与常见问题

  • 安全建议
    • 禁止在生产环境使用 root 日常操作;为应用分配最小权限专用账号
    • 使用强密码并定期轮换;限制来源 IP 与端口,仅在内网或启用 TLS 时开放外网访问。
    • 对管理操作与业务操作使用不同账号,并遵循最小权限原则。
  • 常见问题排查
    • 启用认证后连接报 Authentication failed:检查用户名、密码、–authenticationDatabase 是否指向创建该用户的库(如 my_db),以及服务是否已重启。
    • 提示 not authorized:确认当前连接已在该库完成 db.auth,且用户具备对应角色(如 readWrite)。
    • 配置不生效:确认修改的是正确的 mongod.conf,并执行了 sudo systemctl restart mongod;旧版本如使用包管理器安装,配置文件路径可能不同。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1486303.html

(0)
派派
上一篇 2026-01-07
下一篇 2026-01-07

发表回复

登录后才能评论