CouchDB读取授权

时间:2010-05-04 12:24:38

标签: authentication couchdb

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

感谢。

- 穆斯塔法

2 个答案:

答案 0 :(得分:13)

你说得对,令人困惑。有关详细信息,请参阅0.11 "breaking" changes

无法按文档读取控制; readers字段用于访问整个数据库。有关更多信息,请在Futon中加载数据库,然后单击顶部的Security...链接。

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

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

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

答案 1 :(得分:0)

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