mongodb用户认证管理
一 用户管理
注意:
mongodb有一个验证库的概念,建立用户时必须先use到的某个库,
而这个库,就是该用户的验证库,在使用用户时,要加上验证库才能登陆。
对于管理员用户,必须在admin库下创建.
A 语法规则
mongodb默认未创建任何用户,所以初次安装好mongodb后,配置文件中不能开启验证功能,否则没法登陆.
在创建好管理员用户后,再到配置文件中开启认配置并重启mongodb后,才能正常使用认证功能
基本语法:
1 | db.createUser |
createUser字段介绍:
- user字段,为新用户的名字;
- pwd字段,用户的密码;
- cusomData字段,为任意内容,例如可以为用户全名介绍,可省略;
- roles字段,指定用户的角色
- 可以用一个空数组给新用户设定空角色
- 可以指定内置角色和用户定义的角色
- 常用role:root,readWrite,read
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
dbOwner|userAdmin|userAdminAnyDatabase
几个角色间接或直接也提供了系统超级用户的访问 - 内部角色:
__system
二 管理员账号
A 创建 admin管理员
1 | use admin |
验证测试
1 | > db.auth('root','root123') |
B 配置文件开启认证
配置文件mongodb.conf中,加入以下配置
1 | security: |
重启mongodb
1 | mongod -f /opt/mongodb/conf/mongo.conf --shutdown |
C 登录验证
- 方法一:登录时加认证信息
这种方式需要指定验证库
1 | mongo -uroot -proot123 admin |
- 方法二:登录后再验证
需要吓你use到账号的验证库中
1 | mongo |
D 查看用户
1 | > use admin |
三 普通用户账号
超级管理员用户登陆
mongo -uroot -proot123 admin
选择一个验证库创建用户
use app
db.createUser(
{
user: “app01”,
pwd: “app01”,
roles: [ { role: “readWrite” , db: “app” } ]
}
)
使用该用户登录
mongo -uapp01 -papp01 app
db.system.users.find().pretty()
四 账号删除
需要以root身份登录,然后use到该用户的验证库)
mongo -uroot -proot123 10.0.0.51/admin
use app
db.dropUser(“app01”)
评论