原文链接: https://www.jianshu.com/p/237a0c5ad9fa
MongoDB版本 4.2.0
系统:Linux centos7.6
设置超级管理员
添加admin用户以及密码
use.admin
db.createUser({
user: 'admin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'root', // 角色
db: 'admin' // 数据库
}]
})
查看是否创建成功使用 show users
开启密码登录验证
打开配置文件vim /etc/mongo.conf ,添加以下参数:
security:
authorization: enabled
重启MongoDB
这时再次登录数据库会显示登陆成功,但是输入其他命令的时候却无效,提示没有权限。
登录数据库
// 方式一
mongo
use admin
db.auth('admin', '123456')
// 方式二
mongo admin -u admin -p 123456
通过这种用户密码认证的方式登录数据库之后就可以正常使用数据库了。
添加数据库用户
除了可以给MongoDB设置超级管理员用户以外,我们还可以给每个数据库设置单独的管理员,其只有单独数据库的一定权限。
use test // 跳转到需要添加用户的数据库
db.createUser({
user: 'fooadmin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'readWrite', // 角色
db: 'test' // 数据库名
}]
})
常用命令
show users // 查看当前库下的用户
db.dropUser('testadmin') // 删除用户
db.updateUser('admin', {pwd: '654321'}) // 修改用户密码
db.auth('admin', '654321') // 密码认证
MongoDB 数据库默认角色
数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
超级用户角色:root
官方文档:
https://docs.mongodb.com/manual/reference/built-in-roles/