本地文档与普通CouchDB文档的不同之处在于它们不会被复制,不会出现在任何视图中(包括_all_docs)并且不受验证功能的约束。只能使用必须知道用于检索的文档ID来访问它们。有关详细信息,请参阅http://docs.couchdb.org/en/1.3.x/api/local.html。
恶意用户可能会在面向CouchDB的公众中滥用此功能,以在服务器上存储任意数据。有趣的是,数据库或服务器管理员甚至无法以查看日志文件之外的任何其他方式查看这些文档。
所以我想知道是否有任何选项可以在CouchDB中禁用本地文档?
答案 0 :(得分:4)
不,没有办法做到这一点,抱歉。你的评论都是正确的,这可能是在CouchDB中改进以避免这个问题。请随意在https://issues.apache.org/jira/browse/COUCHDB提交错误,人们肯定会考虑它,或者解释为什么它不实用。
另一方面,更实际的是,给某人写入您的数据库访问权限需要一定程度的信任,他们不会是恶意或严重缺陷。是的,他们可以偷偷地创建本地文档,但同样他们也可以删除数据库中的所有内容,或者将其填入其他正常文档并使服务器崩溃,然后您必须经历并单独删除(甚至是批量删除)删除要求您列出每个文档ID),或者只删除整个数据库。
如果您的数据库客户端不值得信任,那么您不应该让他们直接访问您的数据库。在这种情况下,您应该在它们和CouchDB(即具有固定形式和诸如此类的网站)之间放置一些服务来管理这些交互以控制这类事情。