如何限制 CouchApp 对 CouchDB 的 `_user` 表的访问?

Posted

技术标签:

【中文标题】如何限制 CouchApp 对 CouchDB 的 `_user` 表的访问?【英文标题】:How do I limit a CouchApp's access to CouchDB's `_user` table? 【发布时间】:2012-03-25 03:54:02 【问题描述】:

我想就如何为我的 CouchDB 应用程序构建用户数据获得一些建议。

以下是我们正在构建的内容:我们正在创建一套应用程序(主要利用 html5 的视频 API)来培训人们掌握不同的技能。我们将从一些简单的视频讲座和互动活动开始。我们希望保存个人用户的进度,并且在不久的将来,我们希望创建一些迷你课程,供用户分组学习。多个用户会实时参与(如 google 文档)或长时间(如 wiki)参与相同的活动。

我关心的是私人用户数据。最终,对于我们和用户来说,使用他们的电子邮件地址和密码进行注册是最简单的。但是,在 CouchDB 的 _user 数据库中,对数据的读取访问基本上是公开的,我宁愿不公开所有用户的电子邮件地址。如何将这些电子邮件地址设为私密是我最关心的问题。此外,如果我们可以将所有用户数据设为私有,除非用户选择将其公开,这将是一件好事。

我想到了几个选项,并阅读了这篇文章和 wiki 上的许多其他文章:http://wiki.apache.org/couchdb/PerDocumentAuthorization

我真的不倾向于任何事情,希望得到一些建议。

【问题讨论】:

【参考方案1】:

在即将发布的 CouchDB-1.2.0 中,_users 数据库中的文档只能由各自经过身份验证的用户和管理员读取。

【讨论】:

真相?!那么如果我以特定用户身份登录,我就无法读取其他用户的数据? 刚刚测试过,效果非常好。用户可以 GET POST 并(可能)删除他们自己的 _user 文档,但甚至无法阅读其他人的文档。当他们 GET 别人的文档时,他们会在响应中“丢失”。其他用户甚至存在的唯一提示是 _user db 上的 doc_count。非常感谢马塞洛!

以上是关于如何限制 CouchApp 对 CouchDB 的 `_user` 表的访问?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CouchDB 中提取 CouchApp

node.js 可以像 CouchApp 一样执行从 CouchDB 提取的 JavaScript 函数吗?如何?

CouchDB - CouchApp 的任何替代品?

限制在 couchdb 中匿名删除文档

CouchDB:在 CouchApp 中通过 http 请求获取服务器时间

列出 CouchDB 中的所有 CouchApp?