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

基于角色的CouchDB每字段读取权限,couchdb,couchdb-2.0,Couchdb,Couchdb 2.0,我是CouchDB的新手。 我不知道是否可以限制角色可以从文档中读取的字段。如果可以,这是使用CouchDB的正确方法吗 例如,如果我有这样一个文档: { firstname: 'firstname', lastname: 'lastname', email: ['home': 'foobar@foobar.net', 'work': 'foobar@foobar-working.net'], phone: ['home': '+81 00 0000 0000']

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

例如,如果我有这样一个文档:

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

{
   "admins": {
       "names": [
           "superuser"
       ],
       "roles": [
           "admins"
       ]
   },
   "members": {
       "names": [
           "user1",
           "user2"
       ],
       "roles": [
           "developers"
       ]
   }
}
我希望管理员角色可以读取所有字段,而开发人员只能读取电子邮件和电话。
我怎样才能做到这一点?使用验证功能?

您文章中描述的功能在CouchDB中不可用

couchdb中的安全性定义如下(摘自doc)

安全对象包含两个必需元素admins和members,用于指定分别对数据库具有admin和members权限的用户和/或角色列表:

  • 成员:他们可以从数据库中读取所有类型的文档,并且 可以将设计文件以外的文件写入(和编辑)数据库
  • 管理员:他们拥有成员的所有特权以及以下特权: 编写(和编辑)设计文档,添加/删除数据库管理员和 成员并设置数据库修订限制。他们无法创建一个 也不能删除数据库
CouchDB中没有实现每个文档甚至每个部分文档的访问限制

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


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

好的,谢谢。是否有其他方法可以实现我需要的结果?CouchDB中没有满足您需求的内置机制。您应该在CouchDB之上添加一些逻辑来支持它。这取决于您的体系结构。