【发布时间】:2011-02-15 10:34:06
【问题描述】:
如何在 couchdb 中处理读取身份验证?我知道角色可以在单独的数据库中定义,但我想在文档级别实现读取身份验证。我正在考虑使用 node.js,但它似乎不是一个优雅的解决方案,因为 couchdb 也有一个 http 服务器,我不想再添加一个(或另一个应用程序服务器,如 ruby 或 python)。有人在做这个吗?
谢谢。
【问题讨论】:
如何在 couchdb 中处理读取身份验证?我知道角色可以在单独的数据库中定义,但我想在文档级别实现读取身份验证。我正在考虑使用 node.js,但它似乎不是一个优雅的解决方案,因为 couchdb 也有一个 http 服务器,我不想再添加一个(或另一个应用程序服务器,如 ruby 或 python)。有人在做这个吗?
谢谢。
【问题讨论】:
在最近在CouchDB 上的 O'Reilly 网络广播中,J. Chris Anderson 提到读取身份验证最好通过部分复制和每个读取器组的多个数据库的组合来处理。每个数据库将仅包含属于该特定组的文档。
当您将每个读者 CouchDB 视为授权数据库的过滤实例时,这是最有意义的。
【讨论】:
这基本上是正确的答案。我要补充的是,文档级别的读取控制很难正确,尤其是在存在视图的情况下。在读取时过滤映射行是可行的,但 IO 效率不是很高。然而,根据过滤后的地图行生成缩减值非常昂贵。
出于这些原因,我们鼓励您为每个访问组操作一个数据库,并让所有用户都可以读取整个数据库。
【讨论】: