Built-inRoles角色分类工具角色DatabaseUserRolesread,read-write(每个数据库都有)DatabaseAdministrationRoles?dbAdmin,dbOwner,userAdmin(每个数据库都有)ClusterAdministrationRolesclusterAdmin,clusterManager,hostManager(admin数据库都有)BackupandRestorationRolesbackup,restore(admindatabasehava)All-DatabaseRolesThefollowingrolesareavailableontheadmindatabaseandprovideprivilegesthatapplytoalldatabasesexceptlocalandconfig:readAnyDatabase,readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase(admindatabasehave)超级用户角色:root(Several角色提供间接或直接的系统级超级用户访问权限)(管理数据库有)内部角色__系统?Arolecreatedontheadmindatabasecaninheritprivilegesfromrolesinanydatabase.Arolecaninheritprivilegesfromotherrolesinitsdatabase:一个角色足够继承创建角色的数据库的权限;根据上图发现:read,readWrite,abAdmin,dbOwner,userAdmin……这几个角色是每个数据库都有的。像clusterAdmin、clusterManager、backup、readAnyDatabase、readWriteAnyDatabase...等角色是admin数据库独有的,其他数据库没有;所以我们说,当在库中创建角色时,它会继承库的角色在admin数据库上创建的角色可以从任何数据库中的角色继承权限:因为每个数据库:也就是说,read、read-write、dbAdmin、dbOwner、userAdmin.....等角色也在admin数据库中MongoDB在每个数据库上都提供了内置的数据库用户和数据库管理角色。MongoDB仅在admin数据库上提供了所有其他内置角色。数据库用户角色和数据库管理角色这两种内置角色在每个数据库中都有,但所有其他内置角色基本上都分配给admin数据库。创建角色时,需要检查当前数据库是否有对应的可以继承的角色。角色可以在其定义中包含一个或多个现有角色,在这种情况下,角色会继承包含的角色的所有特权。这句话的意思是:一个角色在定义的时候可以包含其他角色,所以从这个角度来说,我们认为我们定义的角色继承了它定义的角色的权限。(一种组合方式)super角色以下角色提供了为任何用户分配对任何数据库的任何权限的能力,这意味着具有这些角色之一的用户可以为自己分配对任何数据库的任何权限:dbOwner角色,当作用域为admin数据库时admin数据库userAdminAnyDatabase角色root角色提供对所有资源的完全权限//当admin中定义的用户拥有dbOwner角色;thisusercanassignanyuseranyprivilegeonanydatabase//当admin中定义的用户具有userAdmin角色时;Thisusercanassignanyuseranyprivilegeonanydatabase//当用户具有userAdminAnyDatabase角色时;这个用户可以给任何用户分配任何数据库的任何权限//root用户更无敌有问题及时联系我。谢谢。参考https://docs.mongodb.com/manu...
