1 设置用户名和密码
安装MongoDB。
使用mongo工具连接数据库(双击打开就行,默认不需要认证账号)。
设置超级管理员账号和密码
use admin
db.createUser({
user: 'admin', // 用户名(自定义)
pwd: 'Abc123++', // 密码(自定义)
roles:[{
role: 'root', // 使用超级用户角色
db: 'admin' // 指定数据库
}]
})
1
2
3
4
5
6
7
8
9
10
设置完成,可以通过指令 show users 查看是否设置成功。
开启权限验证
找到MongoDB安装目录下的bin目录中的mongod.cfg文件,开启权限验证功能:
security:
authorization: enabled
1
2
重启MongoDB服务
使用mongo连接数据库,并登录超级管理员账号
在没有认证之前,也可以使用mongo连接数据库,只不过不能执行其他指令。
以下是两种使用超级管理员账号登录数据库的方式:
// 方式一
mongo
use admin
db.auth('admin', 'Abc123++')
// 方式二
mongo admin -u admin -p Abc123++
1
2
3
4
5
6
7
登录认证成功之后,就能正常操作数据库了。
为数据库设置独立的登录账号
除了设置超级管理员账号以外,还可以为每个数据库单独设置账号。
例如以下指令:
use myMongoDB // 跳转到需要添加用户的数据库
db.createUser({
user: 'tao', // 用户名
pwd: 'Abc123++', // 密码
roles:[{
role: 'readWrite', // 读写权限角色
db: 'myMongoDB' // 数据库名
}]
})
1
2
3
4
5
6
7
8
9
10
以上指令,为自定义的数据库myMongoDB创建了一个用户tao,它具有对这个数据库的读写权限。
可以通过以下指令验证登录:
mongo myMongoDB -u tao -p Abc123++
1
2 附录
常用命令
show users // 查看当前库下的用户
db.dropUser('testadmin') // 删除用户
db.updateUser('admin', {pwd: '654321'}) // 修改用户密码
db.auth('admin', '654321') // 密码认证
1
2
3
4
5
6
7
MongoDB 数据库默认角色
角色描述 角色标识
数据库用户角色 read、readWrite
数据库管理角色 dbAdmin、dbOwner、userAdmin
集群管理角色 clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色 backup、restore
所有数据库角色 readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase
超级用户角色 root
————————————————
版权声明:本文为CSDN博主「西瓜游侠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hbtj_1216/article/details/120875957