一、基础权限管理步骤
- 启用认证
编辑配置文件/etc/mongod.conf,添加security.authorization: enabled,重启服务生效。 - 创建管理员用户
切换到admin数据库,使用db.createUser()创建具有root角色的管理员账号。use admin db.createUser({ user: "admin", pwd: "强密码", roles: [{ role: "root", db: "admin" }] }) - 创建普通用户并分配权限
- 指定数据库创建用户,分配如
readWrite(读写)、dbAdmin(管理集合/索引)等角色。 - 示例:为用户
myuser分配mydatabase数据库的读写权限use mydatabase db.createUser({ user: "myuser", pwd: "密码", roles: [{ role: "readWrite", db: "mydatabase" }] })
- 指定数据库创建用户,分配如
二、权限操作命令
- 查看用户权限:
db.getUser("用户名")。 - 修改用户密码:
db.changeUserPassword("用户名", "新密码")。 - 删除用户:
db.dropUser("用户名")。 - 授予权限:
db.grantRolesToUser("用户名", ["角色1", "角色2"])。 - 撤销权限:
db.revokeRolesFromUser("用户名", ["角色1", "角色2"])。
三、关键注意事项
- 角色说明:
root:超级权限,可管理所有数据库。readWriteAnyDatabase:可读写所有非local/config数据库。dbOwner:等价于readWrite+dbAdmin+userAdmin。
- 认证连接:使用
--authenticationDatabase指定认证库(如admin)。 - 安全增强:建议限制远程访问 IP、启用 SSL/TLS 加密通信。