问题 CouchDB读取授权


在couchdb网站 - >技术概述 - >安全性和验证 - http://couchdb.apache.org/docs/overview.html  - 它写道(在读者访问 部分)“为了保护文档内容,CouchDB文档可以有一个阅读器列表。 这是允许读取文档的可选读者名称列表。当一个 使用读者列表,受保护的文档只能由列出的用户查看。“我 搜索了如何使用它,但我什么都没找到。所以它实际上是使用和如果 它是怎么回事?

谢谢。

- 穆斯塔法


3017
2018-05-04 12:24


起源



答案:


你是对的,这很令人困惑。请看看 0.11“打破”变化 了解更多信息。

无法按文档读取控制;该 readers 领域是为了 访问整个数据库。有关更多信息,请在Futon中加载数据库并单击 Security... 链接在顶部。

读取控制不可能的原因是因为视图(map和reduce)可以从数据库中的所有文档中提取信息,因此通常无法阻止用户以某种形式查看私有数据。

对于详细的访问控制,您有两个主要选择:

  1. 在您的用户和数据库之间有一个应用程序。使用MySQL的99%的Web应用程序已经这样做了(例如Ruby on Rails)。将ACL信息保留在数据库中,您的应用程序根据ACL授予/拒绝访问权限。
  2. 为每个用户保留一个专用数据库您可能必须修改您的架构,但可能不是。您可以将复制与过滤器一起使用,以仅将用户的数据复制到其数据库中。然后他从他的数据库中读取并写入中央数据库。

13
2018-05-04 15:38



有计划在不久的将来改变这个吗? - Tyler Gillies
我预计在可预见的未来不会改变架构;但我绝对希望工具能够帮助平滑开发。例如,社区非常欢迎以每个用户数据库只包含一部分数据的自动方式! - JasonSmith
嗨,泰勒。一年后,这是在开发人员中提出的。 Chris对全功能访问控制列表有所了解。此外,我正在为用户绘制一个想法 不得 查询文件,但谁 可能 询问 _show 功能。希望很快会有更多的选择。 - JasonSmith
优秀!我等不及了。 - Tyler Gillies
我面临着类似的挑战,并希望看到其中一些选项/工具。版本1.2中有什么问题吗? - Costa


答案:


你是对的,这很令人困惑。请看看 0.11“打破”变化 了解更多信息。

无法按文档读取控制;该 readers 领域是为了 访问整个数据库。有关更多信息,请在Futon中加载数据库并单击 Security... 链接在顶部。

读取控制不可能的原因是因为视图(map和reduce)可以从数据库中的所有文档中提取信息,因此通常无法阻止用户以某种形式查看私有数据。

对于详细的访问控制,您有两个主要选择:

  1. 在您的用户和数据库之间有一个应用程序。使用MySQL的99%的Web应用程序已经这样做了(例如Ruby on Rails)。将ACL信息保留在数据库中,您的应用程序根据ACL授予/拒绝访问权限。
  2. 为每个用户保留一个专用数据库您可能必须修改您的架构,但可能不是。您可以将复制与过滤器一起使用,以仅将用户的数据复制到其数据库中。然后他从他的数据库中读取并写入中央数据库。

13
2018-05-04 15:38



有计划在不久的将来改变这个吗? - Tyler Gillies
我预计在可预见的未来不会改变架构;但我绝对希望工具能够帮助平滑开发。例如,社区非常欢迎以每个用户数据库只包含一部分数据的自动方式! - JasonSmith
嗨,泰勒。一年后,这是在开发人员中提出的。 Chris对全功能访问控制列表有所了解。此外,我正在为用户绘制一个想法 不得 查询文件,但谁 可能 询问 _show 功能。希望很快会有更多的选择。 - JasonSmith
优秀!我等不及了。 - Tyler Gillies
我面临着类似的挑战,并希望看到其中一些选项/工具。版本1.2中有什么问题吗? - Costa


  1. 以管理员身份登录CouchDB。
  2. 打开要保护的特定数据库
  3. 点击 安全 该特定数据库的按钮。
  4. 添加用户 会员 可以阅读的名字。 (至少添加管理员用户名)作为数组的字符串元素。
    防爆。 姓名:[“username1”,“username2”]
  5. 单击“更新”按钮

点击这里查看图片


0
2017-12-23 11:04



他问的是文档访问,而不是数据库访问。 - Kinesias