内置角色img

MongoDB 通过 role-based authorization授予对数据和命令的访问权限,并提供内置角色来提供数据库系统中通常需要的不同级别的访问权限。您还可以创建user-defined roles

角色授予对定义的resources执行一组actions的权限。给定的角色适用于定义它的数据库,并且可以授予访问权限到粒度的集合级别。

MongoDB 的每个内置角色都定义了角色数据库中所有 系统集合在数据库级别的访问权限,以及所有system collections在集合级别的访问权限。

MongoDB 提供了内置的database userdatabase administration每个数据库上的角色 。MongoDB 仅在admin数据库上提供所有其他内置角色 。

本节介绍每个内置角色的权限。 您还可以随时查看内置角色的权限,方法是发出 rolesInfo 命令并将 showPrivilegesshowBuiltinRoles 字段都设置为 true。

数据库用户角色img

每个数据库都包含以下客户端角色:

数据库管理角色img

每个数据库都包含以下数据库管理角色:

集群管理角色img

admin数据库包括以下用于管理整个系统的角色,而不仅仅是一个数据库。这些角色包括但不限于副本集分片集群管理功能。

备份和恢复角色img

admin数据库包括以下用于备份和恢复数据的角色:

在整个集群上提供以下操作:

对所有非系统集合提供以下操作:

提供以下system.js收集操作:

在 上提供以下操作anyResource

config对和local数据库上的所有非系统集合提供以下操作 :

提供以下操作admin.system.version

提供以下操作admin.system.roles

提供对admin.system.users 遗留system.users集合的以下操作:

虽然,restoreadmin.system.users包括使用正常修改操作修改集合中文档的能力,仅使用用户管理方法修改这些数据

在整个集群上,提供以下操作:

[NOTE]

除此以外

从版本 4.2 开始,MongoDB 删除了 system.indexessystem.namespaces 集合。 因此,dbAdmin角色不再提供访问这些集合的权限。 自 MongoDB 3.0 以来,不推荐直接访问这些集合。

在早期版本中,dbAdmin 角色在 system.indexessystem.namespaces 集合上提供上述特权操作(dropCollectioncreateCollection 除外),从而允许直接访问 system.indexessystem.namespaces 集合。

全数据库角色img

以下角色在admin数据库上可用,并提供适用于除local和 之外的所有数据库的特权config

超级用户角色img

多个角色提供间接或直接的系统级超级用户访问权限。

以下角色提供了为任何用户分配对任何数据库的任何权限的能力,这意味着具有这些角色之一的用户可以 为自己分配对任何数据库的任何权限:

以下角色提供对所有资源的完全权限:

内部角色img

  • __systemimg

    MongoDB 将此角色分配给代表集群成员的用户对象,例如副本集成员和mongos实例。该角色授权其持有者对数据库中的任何对象执行任何操作。除非在特殊情况下,否则不要将此角色分配给代表应用程序或人工管理员的用户对象。如果您需要访问所有资源的所有操作,例如运行applyOps命令,请不要分配此角色。相反,创建一个用户定义的角色,授予anyActionanyResource确保只有需要访问这些操作的用户才具有此访问权限。

    参见

原文 - Built-In Roles

译者:景圣

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-02-17 14:11:51

results matching ""

    No results matching ""