Fork me on GitHub

mongodb创建用户,分配权限

创建用户分配权限可以提高安全性,避免所有人都拥有最高的权限,防止跑路删库。

MongoDB 启动访问控制

在启动配置文件中添加 auth=true

创建用户账户

使用createUser命令进行创建用户。以下是参数说明:

字段 类型 描述
user String 用户名
pwd String 密码
userSource String 归属的数据库名称
roles Array 所在当前数据库对于的角色
otherDBRoles { :[array] } 指定该用户在其他数据库中的角色

常用角色

  • read 只读当前数据库
  • readAnyDatabase 只读任意数据库
  • readWrite 读写当前数据库
  • readWriteAnyDatabase 读写任意数据库
  • dbAdmin 读写及清理、修改、压缩、获取统计信息和执行检查 当前数据库
  • dbAdminAnyDatabase 读写及清理、修改、压缩、获取统计信息和执行检查 任意数据库
  • clusterAdmin 能够管理MongoDB,包括连接、集群、复制、列出数据库、创建数据库和删除数据库
  • userAdmin 创建和修改当前数据库用户账户
  • userAdminAnyDatabase 创建和修改任意数据库用户账户

示例

db.createUser({
  user: "zhangsan",
  pwd: "123456",
  roles: ["readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin", "userAdminAnyDatabase"],
})

登录

db.auth('zhangsan','123456')

显示用户列表

show users

删除用户

db.removeUser("zhangsan")

修改用户

修改密码

db.changeUserPassword({'用户名', '密码'})
db.updateUser("用户名", {pwd: "密码"})

修改其它字段,如角色列表

db.updateUser("用户名",  {roles: ["read"]})