MongoDB授权

身居漏室,心系天下

MongoDB采用基于角色的访问控制(RBAC)来管理访问到MongoDB系统。用户是被授予决定用户对可以对数据库资源和操作的访问一个或多个角色。没有角色分配,该用户不可以访问系统。

MongoDB中提供内置角色,对于一个通用的实例,每一个都有专门的用途。包话读, 读写, 数据库管理,和root角色.

管理员还可以创建新的角色和权限,以满足业务需求。管理员可以精确到分配集合级别的权限范围。

当授予一个角色,用户收到该角色的所有权限。在这种情况下,用户收到的各角色的所有权限的组合。

一、角色

角色是由权限的组合以允许对资源的操作。每个被直接定义在特权角色或从其他角色继承。

角色的权限适用于在其中创建角色的数据库。在管理数据库上创建的角色可以包括适用于所有数据库或群集的权限。

分配一个用户的角色获得该角色的所有权限。用户可以具有多个角色,并且可以对不同数据库有不同角色。

色总是授予权限和永远无限制地访问。例如,如果一个用户在一个数据库上有read和readWriteAnyDatabase角色,以大角色为准。

权限
一个指定资源的权限组成和在该资源上的活动许可。

一个权限权可以是一个数据库,集合,设备集,或群集中的任何一个。如果群集,附属的活动响的是系统状态,而不是特定的数据库或集合的状态。

一个动作是在资源上允许执行的一个命令或方法。一个资源可以有多个允许的动作。对于有效动作请参阅Privilege Actions.

例如,权限,其中包括更新操作允许用户在资源上修改在现有文档。此外,授予用户在资源上创建文档的权限,管理员将添加插入动作到权限。

对于权限的语法,请参见admin.system.roles.privileges。

继承的权限

一个角色可以包含在其定义中的一个或多个现有的角色,在这种情况下,角色包括继承的角色的所有权限。

一个角色可以从在其数据库中的其他角色继承权限。在管理数据库上创建的角色可以从任何数据库角色继承权限。

用户自定义的角色

新版本2.6
用户管理员可以创建自定义角色,确保集合级和命令级以保持最低特权的政策。管理员创建和编辑角色使用角色管理命令。

MongoDB的用户自定义的角色,以它的名字和他的数据库组合创建一个唯一的用户ID。MongoDB存储角色在admin数据库的system.roles集合。使用管理命令来查看和编辑自定义角色代替直接直接访问这个集合。

二、用户
MongoDB存储用户凭据在受保护的admin.system.users中。使用用户管理的方法来查看和编辑用户凭据。

三、角色分配给用户
创建一个访问系统的数据库用户管理用户。MongoDB的用户管理命令创建用户并为他们分配角色。
MongoDB的用户的作用范围取决中用户是在哪个数据库中创建的。在admin数据库MongoDB存储所有用户的定义,无论用户作用于哪个数据库。MongoDB的用户存储在admin数据库system.users的集合中。使用用户管理命令代替直接对这个集合的访问。

在分配数据库的第一个角色应该是userAdmin或userAdminAnyDatabase的其中之一。该用户可以创建所有其他用户在系统中。请参阅创建用户管理员。


四、保护用户和角色集合

MongoDB的存储角色和用户数据在受保护的admin.system.roles admin.system.users和集合,只能通过用户管理方法访问。

如果禁用接入控制,不要使用通用的insert()和update()方法来修改admin.system.roles和admin.system.users集合。

五、另请参阅

Built-In Roles

资源文档

权限动作

创建一个管理员

添加一个用户到数据

京ICP备14008139号-1