我是CouchDb
的新手,正在尝试理解如何正确使用它。我来自MongoDB
,我总是写一个网络层并将它放在mongo前面,以便我可以允许用户访问其中的数据等。事实上,这就是我的方式使用了我写过的每个网站的所有数据库。所以,看看Couch,我发现它的原生API是HTTP,它内置了OAuth支持等内容,以及其他暗示我的功能,也许我不应该让我的代码层位于Couch前面,而是写Views
和事情,然后向我的用户提供Couch帐户?我正在考虑像我的网站的基于HTTP的API,或用户将通过我的数据消费的东西。尽管如此,打开这样的Couch对我来说似乎很奇怪。从Couch的意义上来说,OAuth对于我正在编写并在我自己的网络内部“正式”运行的软件的远程访问意味着什么,或者它是否真正意味着最终用户?
我知道可能只能通过CouchDB上的代码层来完成这些事情,就像您希望在API请求期间发生其他非数据库相关的事情一样。因此,我认为我仍然需要一个代码层。
答案 0 :(得分:3)
经销商的选择。
Nodejitsu对这类主题here有很好的写作。
不了解您的具体应用我将采取广泛的方法......
如果您想阻止用户查看您的数据库,请将其设为后端。您可以通过像node.js之类的东西来管道所有内容,并且只显示用户需要查看的内容,并且他们永远不会知道有关数据库的任何信息。 见Resource View Presenter
如果您不关心数据安全性,可以在CouchDB上托管整个应用程序;见CouchApp。此方法的好处是可以使用复制机制来控制发布站点/数据。这里的缺点是你几乎肯定会遇到一些技术限制,需要将CouchDB移到后端附近。
让应用服务器显示接口,客户端分别从数据库中提取数据。这提供了最大的灵活性,但可能会造成伤害,因为即使设计良好,也可能导致可支持性和可伸缩性问题。
在后端使用CouchDB。如果您需要移动客户端进行同步,请使用为此目的公开公开的辅助数据库,并有选择地将此数据同步到需要的位置。
答案 1 :(得分:1)
简单地说,不。
在面向公众的网站上无法正确保护Couch。没有办法在足够精细的粒度级别上区分访问。如果有人可以访问任何数据,他们就可以访问所有数据。
并非所有网站上的数据都是供公众使用的,除了最简单的网站。