MongoDB设置登录账号和密码

1 设置用户名和密码

  1. 安装MongoDB

  2. 使用mongo工具连接数据库(双击打开就行,默认不需要认证账号)。

  3. 设置超级管理员账号和密码

use admin

db.createUser({
  user: 'admin',    // 用户名(自定义)
  pwd: 'Abc123++',  // 密码(自定义)
  roles:[{
    role: 'root',   // 使用超级用户角色
    db: 'admin'     // 指定数据库
  }]
})

设置完成,可以通过指令 show users 查看是否设置成功。

  1. 开启权限验证

找到MongoDB安装目录下的bin目录中的mongod.cfg文件,开启权限验证功能:

security:
  authorization: enabled
  1. 重启MongoDB服务
  2. 使用mongo连接数据库,并登录超级管理员账号

在没有认证之前,也可以使用mongo连接数据库,只不过不能执行其他指令。

以下是两种使用超级管理员账号登录数据库的方式:

// 方式一
mongo
use admin
db.auth('admin', 'Abc123++')

// 方式二
mongo admin -u admin -p Abc123++

登录认证成功之后,就能正常操作数据库了。

  1. 为数据库设置独立的登录账号

除了设置超级管理员账号以外,还可以为每个数据库单独设置账号。

例如以下指令:

use myMongoDB  // 跳转到需要添加用户的数据库

db.createUser({
  user: 'tao',          // 用户名
  pwd: 'Abc123++',      // 密码
  roles:[{
    role: 'readWrite',  // 读写权限角色
    db: 'myMongoDB'     // 数据库名
  }]
})

以上指令,为自定义的数据库myMongoDB创建了一个用户tao,它具有对这个数据库的读写权限。

可以通过以下指令验证登录:

mongo myMongoDB -u tao -p Abc123++

2 附录

  1. 常用命令
show users  // 查看当前库下的用户

db.dropUser('testadmin')  // 删除用户

db.updateUser('admin', {pwd: '654321'})  // 修改用户密码

db.auth('admin', '654321')  // 密码认证
  1. MongoDB 数据库默认角色
角色描述 角色标识
数据库用户角色 read、readWrite
数据库管理角色 dbAdmin、dbOwner、userAdmin
集群管理角色 clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色 backup、restore
所有数据库角色 readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase
超级用户角色 root
上一篇:mongo数据删除和游标


下一篇:2021年MongoDB中文社区长沙大会 | 相聚岳麓,共话mongo!