mongodb:限制对特定集合的读/写访问

2024-01-29

即使用户拥有数据库的读/写访问权限,是否有任何方法可以限制数据库中特定集合的读/写访问权限?

例如:我有一个名为:PRODCAST 的数据库,它包含 collA、collB、collC 和 collD。假设我们有 10 个用户,他们都可以访问 PRODCAST 数据库,并且能够对数据库中存在的所有集合执行读/写操作。

我的问题是,我们是否可以阻止所有用户执行读/写操作,尤其是CollC由于 collC 具有一些敏感数据,因此即使他们具有数据库访问权限,我也不会向所有人展示。


即使用户拥有数据库的读/写访问权限,是否有任何方法可以限制数据库中特定集合的读/写访问权限?

在 MongoDB 3.6 中,角色和权限是附加的:您可以向用户授予附加权限,但不能删除或限制已授予或继承的现有权限。

例如:我有一个名为:PRODCAST 的数据库,它包含 collA、collB、collC 和 collD。假设我们有 10 个用户,他们都可以访问 PRODCAST 数据库,并且能够对数据库中存在的所有集合执行读/写操作。

限制访问的建议方法collC将是:

  • 明确地为每个集合授予权限 https://docs.mongodb.com/manual/core/collection-level-access-control/(而不是整个的读/写访问PRODCAST数据库),或
  • 为需要更多限制性权限的集合创建单独的数据库

如果您的所有用户都需要一组通用的访问权限,您可以创建一个用户定义(自定义)角色 https://docs.mongodb.com/manual/core/security-user-defined-roles/使管理更容易。那么你可以授予自定义角色 https://docs.mongodb.com/manual/reference/method/db.grantRolesToUser/ (eg. PRODCAST) 给您的用户,并在您添加具有共享访问权限的新集合/数据库时根据需要更新角色。

我的问题是,我们是否可以阻止所有用户执行读/写操作,尤其是CollC由于 collC 具有一些敏感数据,因此即使他们具有数据库访问权限,我也不会向所有人展示。

要进一步限制访问敏感数据,您可以使用上述任一方法来限制整体读/写访问,然后创建一个只读视图 https://docs.mongodb.com/manual/core/views/集合(MongoDB 3.4+)。与集合类似,访问视图需要读取访问权限。但是,可以授予视图的读取权限,而不需要对基础集合的读取权限,因此可以完全编辑敏感字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mongodb:限制对特定集合的读/写访问 的相关文章

随机推荐