couchdb - 无法在 _users DB 中创建用户文档
问题描述
我在生产设置中突然出现意外错误(在 _users DB 中创建用户文档时)
{
"error": "EXIT",
"reason": "{{badmatch,[]},\n [{couch_query_servers,new_process,3},\n {couch_query_servers,lang_proc,3},\n {couch_query_servers,handle_call,3},\n {gen_server,handle_msg,5},\n {proc_lib,init_p_do_apply,3}]}"
}
这是我的文档结构,自过去 2 年以来一直运行良好
{"_id": "org.couchdb.user:name","name": "name","roles": [],"type": "user","password": "password"}
非常感谢您帮助解决我的问题
解决方案
我得到了解决方案。在我的_users表中,创建了一个设计文档_design/X12635。删除文档后,它开始正常工作。
{
"_id": "_design/X12635",
"_rev": "1-12bc5863e7f65bad6ddf51c1748c3e42",
"language": "erlang",
"validate_doc_update": "fun ({NewDoc}, OldDoc, UserCtx, SecObj)->\n\t%%Covers CVE-2017-12635\n\tRoles = proplists:lookup_all(<<\"roles\">>,NewDoc),\n\tcase length(Roles) < 2 of\n\t\ttrue -> ok;\n\t\tfalse ->throw({[{<<\"forbidden\">>, <<\"You can’t hack roles,sorry\">>}]})\n\tend,\n\t1\nend."
}
在获得@Flimzy 评论后,我花了一些时间并找到了一个替代解决方案。我再次恢复上面的设计文档_design/X12635并在我的CouchDB 1.6.1中添加了以下配置
Section : native_query_servers
Option : erlang
Value : {couch_native_process, start_link, []}
启用erlang可能会影响安全性,最好将CouchDB 1.6.1升级到最新版本
推荐阅读
- python - Python - 在数据框中检索数据框
- node.js - React - onbeforeunload 事件从未触发
- macos - 作曲家 SSL Err mac os high sierra
- plot - Sage 数学绘图点我更大的尺寸问题
- loops - SAS - 使用循环调用具有不同参数的宏
- asp.net-core - 在 blazor 应用程序中使用 mudblazor 实现通用表格组件。.net 核心
- python - 是否有可能将 CuPy 阵列输入到 Detectron 模型中?
- java - 没有 JDBC 类型的方言映射:1111 试图映射出一个 jsob 对象
- javascript - Gulp 4 异步完成错误:TypeError [ERR_INVALID_ARG_TYPE]:“时间”参数必须是 Array 的实例。收到空?
- build - ANT 构建:解析器中的变量:工件未定义