基于角色的每个字段的CouchDB读取特权

时间:2019-02-21 10:50:53

标签: couchdb couchdb-2.0

我是CouchDB的新手。 我不知道我是否可以限制角色可以从文档中读取的字段。如果可以的话,这是使用CouchDB的正确方法吗?

例如,如果我有这样的文档:

RewriteEngine on
RewriteRule ^proxy/http://?(.*)$ http://$1 [P]

以及以下角色:

{
    firstname: 'firstname',
    lastname: 'lastname',
    email: ['home': 'foobar@foobar.net', 'work': 'foobar@foobar-working.net'],
    phone: ['home': '+81 00 0000 0000'],
}

我希望管理员角色可以读取所有字段,而开发人员只能读取电子邮件和电话。 我该如何实现?使用验证功能吗?

1 个答案:

答案 0 :(得分:2)

帖子中描述的功能在CouchDB中不可用。

couchdb中的安全性由以下术语定义(摘自doc)

  

安全对象由两个强制性元素admin和member组成,用于指定分别具有数据库管理员和成员权限的用户和/或角色列表:

     
      
  • 成员:他们可以从数据库中读取所有类型的文档,并且   可以将设计文档以外的文档写入(和编辑)数据库。
  •   
  • 管理员:他们拥有成员的所有特权以及特权:   编写(和编辑)设计文档,添加/删除数据库管理员,以及   成员并设置数据库修订限制。他们无法创建   数据库或删除数据库。
  •   

CouchDB中没有实现按文档甚至按部分文档的访问限制

当前,您可以通过在设计文档中定义验证文档更新功能来定义每个文档的写限制。

有人提议添加一些基于文档的访问限制,但这似乎处于开发的早期阶段。您可以看到提案here