在couchDb>数据库>权限中,在角色中添加_admin,并且在URL中添加用户名和密码都可以正常工作,但是出于下载附件的目的,我不会在显示curl中添加用户名和密码。
所以我只想删除显示数据中的身份验证。我该怎么办?
示例:
1)http://username:password@127.0.0.1:5984/database/001 用于添加,删除,更新
2)http://127.0.0.1:5984/database/001/test.php 仅用于显示或下载附件。
答案 0 :(得分:0)
要提供一个每个人只能读取少数几个可以写的模式 1 ,您想在设计文档中使用validate_update_doc 2 函数。任何创建,更新或删除文档的请求都会调用该函数。
例如,需要修改的管理员角色,但允许任何人读取数据库:
function(newDoc, oldDoc, userCtx) {
if (userCtx.roles.indexOf("_admin") === -1) {
throw( { forbidden : "Only admins can modify the database." } );
}
}
设计文档可能看起来像这样
{
"_id": "_design/validate_write",
"validate_doc_update": "function (newDoc, oldDoc, userCtx) { if (userCtx.roles.indexOf('_admin') === -1) throw( { forbidden : 'Only admins can modify the database.'} ); }"
}
在Fauxton中轻松创建此文档。正如两个参考文献所概述的那样,这可以扩展到用户角色等。
请注意,对于您的情况,必须将CouchDB配置属性require_valid_user
3 设置为false。
1 CouchDB身份验证食谱:Everybody can read only some can write
2 CouchDB validate_doc_update函数
3 CouchDB require_valid_user configuration property