无法使用用户“您不是服务器管理员”将文档添加到数据库中

use*_*253 6 couchdb

我遇到的问题是,我创建的用户无法将任何内容提交到我在下面列出的数据库中。我遵循了此处列出的步骤(在CouchDB中创建普通用户),并查看了无数页的文档以试图解决这一问题。(例如:http//wiki.apache.org/couchdb/Security_Features_Overview)。

我正在使用v1.5,并尝试将用户“ testAdmin”设置为“测试”数据库的管理员。超级管理员,这是通过futon界面创建的我的管理员帐户。

如果我查看安全文档,则可以在其中看到我的权限,该权限应允许testAdmin用户访问数据库:

curl -X GET http://superadmin:1234@localhost:5984/test/_security
Run Code Online (Sandbox Code Playgroud)

响应:

   { 
      "admins": 
         { "names":["testAdmin"],
           "roles":[]
         },
      "readers":
         { "names":["testUser"],
           "roles":[]
         }
    }
Run Code Online (Sandbox Code Playgroud)

然后,如果运行此命令,则会显示“您不是服务器管理员”。

curl -X PUT http://testAdmin:5678@localhost:5984/test/ -d '{"abc": "def"}'
Run Code Online (Sandbox Code Playgroud)

响应:

{"error":"unauthorized","reason":"You are not a server admin."}
Run Code Online (Sandbox Code Playgroud)

我尝试过将用户切换为阅读器,也尝试过使用我创建的当前列为阅读器的其他用户,但我一直遇到相同的错误。

编辑: 我可以使用创建的用户正常登录Futon,并且他们的权限在Futon中都可以正常工作,但是我仍然无法成功使用curl。

小智 7

使用

卷曲

curl -u USER:PASS -X PUT "http://host:port/db_target" -d '{...}'
Run Code Online (Sandbox Code Playgroud)

这可能是最初问题的解决方案。


Kxe*_*pal 5

您正在尝试创建数据库而不是创建文档。如果要创建不带预定义ID的文档,请改用POST请求。


dev*_*os1 5

值得补充的是,如果您将其打开并且没有意识到,Fauxton 经常会“忘记”其身份验证,以奇怪的方式失败,直到您重新加载页面并且它意识到您需要再次登录。

简而言之,我遇到了类似的问题,只需要重新验证即可解决它。