【问题标题】:Does MongoDB provide document level access to users?MongoDB 是否为用户提供文档级别的访问权限?
【发布时间】:2015-03-25 22:28:44
【问题描述】:

我有一些集合,我希望用户能够基于“标签”字段对文档(行)进行特权访问。所以 user1 在查询集合时只能看到 tag = user1 的文档。

【问题讨论】:

  • 您可以设置对数据库用户 (docs.mongodb.org/manual/core/collection-level-access-control) 的集合级访问权限。但是,你想要的东西并不是开箱即用的,你必须自己实现。
  • 如上所述。不是通过“开箱即用”的用户控制,而是您真正谈论的正是您可以使用$redact 甚至在文档的深度中执行的操作。我个人建议您的 ACL 实际上是“角色”而不是“用户名”。另请注意,$redact 示例是微不足道的,同样的,您最好在代码中实现。
  • @joao 你能指出任何资源或链接,这些资源或链接可以为实现这一目标提供一个良好的开端
  • @NeilLunn:$redact 在这种情况下看起来确实有意义。也许您可以将您的评论扩展为答案?

标签: mongodb mongodb-query mongodb-java


【解决方案1】:

我终于在 PyMongo 中编写了一个中间脚本,根据用户的属性(保存在单独的数据库中)查询数据库。此查询的结果托管在单独的 localhost(或任何其他 IP)端口上,然后由我们的 BI 应用程序使用。对单独数据库的读写访问权仅提供给管理员,管理员可以修改用户有权享有的访问权。托管和查询是使用 Flask 和 PyMongo 完成的,可以通过以下链接安装:

http://api.mongodb.org/python/current/installation.html
http://flask.pocoo.org/docs/0.10/installation/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2014-01-01
    相关资源
    最近更新 更多