[英]CouchDB / PouchDB partial syncs with limited rights
我只是偶然发现了 CouchDB 和 PouchDB 同步功能。 通常,Web 应用程序有一个应用程序服务器来实现身份验证、权限和业务逻辑,允许限制用户对特定资源/记录的访问。 这让我想到了几个问题:
是否可以限制对沙发数据库中记录的访问。 例如。 超级管理员可以查看所有内容,部门经理可以查看其部门的所有内容,而普通用户只能查看自己的记录或例如分配给他的任务?
不。 您不能使用单个数据库并仅使用 CouchDB 来做到这一点。 但是有几种方法可以实现这一点,例如:
更多信息在这里: https : //wiki.apache.org/couchdb/PerDocumentAuthorization
是否可以限制对沙发数据库中记录的访问。 例如。 超级管理员可以查看所有内容,部门经理可以查看其部门的所有内容,而普通用户只能查看自己的记录或例如分配给他的任务?
现成的安全策略非常基础,但您可以使用高级功能做很多事情。
您想要做的事情可以简单地使用show
函数完成,该函数会根据req.userCtx
生成不同的输出。
在不同的设置中(基于用户/方法/URI 的授权,有或没有第三方身份验证),由于 CouchDB 完全符合 REST,您还可以使用 HTTP 反向代理来实现安全相关功能。
CouchDB + PouchDB 是否只能进行部分同步。 例如同步我负责的所有任务?
在 CouchDB 中,这称为 “过滤复制” 。
无论如何,我似乎很奇怪,因为在我看来,每个人都可以访问用户数据库。
当然不是。 在正常模式下(不是“管理方”),其他用户只能访问“公共”属性,当然,只有用户自己可以更新她的用户文档(请参阅文档)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.