Electronic Joint Business

Solution for E-Business

面向文档数据库CouchDB (五) 高级话题

权限控制与安全 CouchDB 目前只支持一种角色,即“系统管理员”。“系统管理员”可以执行任意的 HTTP REST API 对数据库进行任意的修改。可以在 CouchDB 的配置文件中添加系统管理员的帐号和密码。 CouchDB 也自带对 HTTP 基本认证的支持,同样可以在配置文件中启用这一认证方式。 由于目前 CouchDB 对于权限控制功能比较弱,一种比较好的做法是用 Apache HTTP 服务器作为 CouchDB 的反向代理,由 Apache HTTP 服务器来处理访问控制。关于配置 Apache HTTP 服务器,见参考资料。 文档更新校验 CouchDB 允许文档在创建和更新之前先进行校验。只有校验通过的文档才能被保存在数据库中。校验方法是由设计文档中的validate_doc_update字段来表示的。所有的文档更新都会调用该方法,如果该方法抛出异常,则说明校验失败,CouchDB 会返回异常中的错误信息给客户端。 validate_doc_update的示例如代码清单 22 所示。该方法可以接受 3 个参数:newDoc、oldDoc 和 userCtx,其中 newDoc 表示待创建或更新的文档对象,oldDoc表示数据库中已有的文档对象,userCtx 则是一个包含 db、name 和 roles 三个属性的 JSON 对象,分别表示数据库名称、用户名和用户所属角色的数组。 清单 22.validate_doc_update方法示例 function(newDoc, oldDoc, userCtx) { if(newDoc.type == […]

, , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.