代码之家  ›  专栏  ›  技术社区  ›  Valerio Emanuele

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

  •  0
  • Valerio Emanuele  · 技术社区  · 6 年前

    我是库奇德的新朋友。 我不知道是否可以限制角色可以从文档中读取的字段。如果可以,这是与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"
           ]
       }
    }
    

    我希望管理员角色可以读取所有字段,而开发人员只能读取电子邮件和电话。 我怎样才能做到这一点?使用验证功能?

    0 回复  |  直到 6 年前
        1
  •  2
  •   Juanjo Rodriguez    6 年前

    CouchDB中没有您文章中描述的功能。

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

    security对象由两个强制元素admins和members组成,它们分别用于指定对数据库具有管理员和成员权限的用户和/或角色的列表:

    • 成员 :他们 可以读取所有类型的文档 从数据库,他们 可以向数据库写入(和编辑)文档,但设计文档除外。
    • 管理员 :他们拥有成员的所有特权和特权: 编写(和编辑)设计文件 ,添加/删除数据库管理员和 成员并设置数据库修订限制。他们不能创造一个 数据库或删除数据库。

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

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

    有人提议为每个文档添加一些访问限制,但它似乎处于开发的早期阶段。你可以看到这个提议 here .

    推荐文章