在CouchDB 1.0中创建用户时出错

在CouchDB 1.0中创建用户时出错,couchdb,Couchdb,我的系统是ubuntu 10.04,我已经安装了CouchDB 1.0。我可以创建管理员,或更多管理员,以管理员身份登录,一切正常 自CouchDB中的0.11以来,就有了非管理员用户的概念,用户可以拥有对数据库的细粒度权限。我想创建这样的用户。我打开Futon,我没有登录,我点击“注册”链接(右下角)。然后是关于用户名和密码的问题。当我填写并提交表单时,“用户名”字段下有很长的错误消息: 注册错误:{gen_server,call,[coach_query_server,{get_proc,{

我的系统是ubuntu 10.04,我已经安装了CouchDB 1.0。我可以创建管理员,或更多管理员,以管理员身份登录,一切正常

自CouchDB中的0.11以来,就有了非管理员用户的概念,用户可以拥有对数据库的细粒度权限。我想创建这样的用户。我打开Futon,我没有登录,我点击“注册”链接(右下角)。然后是关于用户名和密码的问题。当我填写并提交表单时,“用户名”字段下有很长的错误消息:

注册错误:{gen_server,call,[coach_query_server,{get_proc,{doc,{1,[]},{[{,},{,},{,}]},[],false,[]},{,}]}


这是什么?如何在CouchDB中创建用户?

看起来您在系统上已经有一个管理员帐户,CouchDB正在检测并希望您登录以创建帐户。检查local.ini配置文件,查看是否在[admins]部分定义了管理员-如果从旧安装升级,可能会定义一些管理员

作为这些管理员之一登录,或者在不记得密码的情况下更改密码(只需将has替换为明文密码,下次CouchDB启动时就会对其进行哈希处理)。现在重新启动CouchDB。如果您有管理员帐户,则以该用户的身份登录,或者如果您删除了所有旧帐户,则单击“注册”以创建新帐户


干杯。

要创建用户,请将JSON文档放到
http://localhost:5984/_users/org.couchdb.user:

例如,创建一个文件
login.json
,如下所示:

{
    "_id": "org.couchdb.user:test",
    "name": "test",
    "password_sha": "24e8e07c23d8ae85108468ec4814b2f0fa84edde",
    "salt": "78f67e252351a56d6e1e6df9ba005239",
    "roles": [],
    "type": "user"
}
然后将数据放入couchdb:

curl -X PUT http://<admin>:<password>@localhost:5984/_users/org.couchdb.user%3Atest -S -s -H "Content-Type: application/json" -d @login.json
curl-X PUT http://:@localhost:5984/_users/org.couchdb.user%3Atest-S-S-H“内容类型:application/json”-d@login.json
(将
替换为您的couchdb凭据。)


现在您应该可以使用用户“test”和密码“test123”登录couchdb了。

我在debian上也遇到了类似的错误。我从构建CouchDB repo编译了CouchDB。我可以创建管理员用户,但不能创建普通用户。我也无法运行临时视图。通过清除libmozjs1d和erlang nox并重新编译解决了这个问题。希望能有所帮助。

我自己也遇到了这个问题,发现这是因为我的
名称
\u id
字符串的名称部分不匹配:

curl -X PUT https://admin:password@server:6984/_users/org.couchdb.user:dan \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{"name": "Dan", "password": "password", "roles": [], "type": "user"}'
这不起作用,因为org.couchdb.user:dan的
\u id
dan的名称部分与提供的
名称
dan不匹配

由于用户名匹配(现在两个都匹配),所以下面的操作有效


是的,我有管理员帐户。当我以管理员身份登录时,没有“注册”链接。如果我删除管理员帐户,也没有“注册”链接(只有一个可以用来创建管理员帐户的链接)。当有管理员帐户,但我没有登录,并点击“注册”-描述的错误发生。它在windows下工作。问题只出现在Ubuntu上,所以我怀疑某些文件的某些权限。
curl -X PUT https://admin:password@server:6984/_users/org.couchdb.user:Dan \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{"name": "Dan", "password": "password", "roles": [], "type": "user"}'