每个内建角色定义了权限:
- 数据库级别的权限: 对所有non-system collections有效
- collections级别的权限: 对system collections 有效
内建角色:
- 每个数据库都有的内建角色(非admin的角色, 范围限定在所在数据库的权限)
- database user roles
- read : 对所有non-system collections 和 system.js collection的读权限
- readWrite 对所有non-system collections 和 system.js collection的读写权限
- database administration roles
- dbAdmin: 对schame相关操作的权限,如建索引, 查看profile等
- dbOwner: 包含readWrite、dbAdmin、UserAdmin角色
- userAdmin: 在所在数据库等创建和修改角色和用户的权限
- database user roles
2. admin数据库包含cluster administration roles
-
- clusterAdmin: 包含clusterManger、clusterMonitor、hostManager角色,外加dropDatabase权限
- clusterManger: 对集群的管理和监管权限,可以访问config和local database,对non-system collections 有读写权限, 对system collections只有读权限
- clusterMonitor:对集群的管理和监管的读权限
- hostManager:管理和监控server的权限
3. admin数据库包含Backup 和 Restoration roles
-
- backup:back up data的相关权限
- restore:restore相关的权限
4. admin数据库包含的对所有数据库(local和config除外)的权限
-
- readAnyDatabase:拥有除local和config外的所有databasse的read权限
- readWriteAnyDatabase:拥有除local和config外的所有databasse的readWrite权限
- userAdminAnyDatabase:拥有除local和config外的所有databasse的userAdmin权限
- dbAdminAnyDatabase:拥有除local和config外的所有databasse的dbAdmin权限
5. superuser roles
-
- 可以任意创建角色和用户的权限:
- dbOwner(admin):
- userAdmin(admin):
- userAdminAnyDatabase:
- root用户又有如下角色权限:
- readWriteAnyDatabase
- dbAdminAnyDatabase
- userAdminAnyDatabase
- clusterAdmin
- restore
- backup
- 可以任意创建角色和用户的权限:
mongo用户管理的特点:
- 用户在不同的数据库创建, 就用不同的数据库进行验证,即authentication database
- 不同数据库创建的用户,即使同名,也是不同的用户, 即<authentication database>.<userName>才组成用户的唯一名字
- 连接服务器的时候,除了提供用户名,还需要提供验证数据库,如果省略了验证数据库, 默认是使用admin
- 用户的权限跟在哪个数据库创建无关,只与授予的用户权限和角色有关