2010-05-04 124 views
10

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

谢谢。

- Mustafa

回答

13

你说得对,它很混乱。请参阅0.11 "breaking" changes了解更多信息。

每个文档阅读控制是不可能的;该readers字段是访问整个DB。有关更多信息,请在蒲团中加载您的数据库,然后单击顶部的Security...链接。

原因读取控制是不可能的,因为视图(映射,减少)可以得出从数据库中的所有文档的信息,所以一般不可能阻止用户以某种方式看到私人数据。

有关详细的访问控制,你有两个主要选择:

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

在不久的将来改变这一什么计划吗? – 2010-09-18 04:34:50

+0

我不希望在可预见的将来改变架构。不过,我绝对期望使用工具来帮助平滑开发。例如,让一个用户数据库只有一部分数据的自动化方式将会受到社区的欢迎! – JasonSmith 2010-10-01 07:51:58

+3

嗨,泰勒。一年后,这是开发人员提出的建议。 Chris对全功能访问控制列表有所了解。另外,我正在草拟一个用户的想法,他们可能不查询文档,但谁可能查询'_show'函数。希望很快会有更多的选择。 – JasonSmith 2011-09-15 13:43:32

0
  1. 以管理员身份登录到CouchDB。
  2. 打开你想要保护的特定数据库
  3. 点击安全该特定数据库的按钮。
  4. 将用户添加到成员名谁可以读取。 (至少添加管理员用户名)作为数组的字符串元素。
    例。 名称: “用户名1”, “用户名2”]
  5. 点击更新按钮

Click here to see the image

+0

他在询问文档访问权限,而不是数据库访问权限。 – Kinesias 2017-03-11 22:00:04