我偶然发现了CouchDB和PouchDB同步功能。通常,Web应用程序具有实现身份验证,权限和业务逻辑的应用程序服务器,允许限制用户访问特定资源/记录。这引出了我的几个问题:
答案 0 :(得分:1)
是否可以限制对沙发数据库内记录的访问。例如。超级管理员看到一切,部门经理看到他所在部门的一切,而一个简单的用户只看到他自己的记录,例如分配给他的任务?
不。您无法使用单个数据库并仅使用CouchDB执行此操作。 但是有几种方法可以实现这一点,例如:
此处有更多信息:https://wiki.apache.org/couchdb/PerDocumentAuthorization
答案 1 :(得分:0)
是否可以限制对沙发数据库内记录的访问。例如。超级管理员看到一切,部门经理看到他所在部门的一切,而一个简单的用户只看到自己的记录,例如分配给他的任务?
现成的安全策略非常基础,但您可以使用高级功能很多。
您想要做的只是使用show
function,只会根据req.userCtx
生成不同的输出。
在不同的设置中(基于用户/方法/ URI的授权,有或没有第三方认证),因为CouchDB完全符合REST,您还可以使用HTTP反向代理来实现与安全相关的功能。
CouchDB + PouchDB是否只能进行部分同步。例如同步我负责的所有任务?
在CouchDB中,这称为"filtered replications"。
无论如何我似乎很奇怪,因为在我看来,用户数据库可以从所有人访问。
当然不是。在普通模式(不是“管理员”)中,其他用户只能访问“公共”属性,当然,只有用户自己才能更新用户文档(参见documentation)。