使用mongodb 有段时间了,由于是在内网使用,便没有设置权限,一直是裸奔。
最近有时间,研究了下mongodb 3.2 的用户权限配置,网上有许多用户权限配置的文章,不过大多是之前版本,有些出入,特记录备查。
环境
MongoDB shell version: 3.2.6
CentOS release 6.8 (Final)
设置方法
用户权限设置
1、进入mongodb的shell :
mongo
2、切换数据库:
use admin
从3.0 版本起,默认只有 local
库,没有admin
库,需要我们自己来创建。
- 3、添加用户,指定用户的角色和数据库:
1 | db.createUser( |
4、查看创建的用户 :
show users
或db.system.users.find()
5、启用用户权限:
修改配置文件,增加配置:
1 | security: |
重新启动mongodb, /etc/init.d/mongod restart
- 6、用户验证使用:
启用用户验证后,再次登录mongo shell ,执行 show dbs
等命令会提示“没有权限”。此时,需要用户验证登录。
1 | db.auth("admin","admin") |
其他
内建的角色
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) - 内部角色:__system
官方详情角色说明 –> 传送门
配置文件示例
官方详解 –> 传送门
1 | #此处为配置文件可配置的内容 |