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

Couchdb 无法使用“用户”将文档添加到数据库中;您不是服务器管理员”;,couchdb,Couchdb,我与我创建的用户之间存在问题,他们无法将任何内容提交到我在下面列出的数据库中。我遵循了这里列出的步骤()并查阅了无数页的文档,试图将其整理出来。(例:) 我正在使用v1.5,并试图将用户“testAdmin”设置为“test”DB的管理员。超级管理员,这是我通过futon界面创建的管理员帐户 如果我检查安全文档,我可以在那里看到我的权限,该权限应允许testAdmin用户访问数据库: curl -X GET http://superadmin:1234@localhost:5984/test/_

我与我创建的用户之间存在问题,他们无法将任何内容提交到我在下面列出的数据库中。我遵循了这里列出的步骤()并查阅了无数页的文档,试图将其整理出来。(例:)

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

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

curl -X GET http://superadmin:1234@localhost:5984/test/_security
答复:

   { 
      "admins": 
         { "names":["testAdmin"],
           "roles":[]
         },
      "readers":
         { "names":["testUser"],
           "roles":[]
         }
    }
{"error":"unauthorized","reason":"You are not a server admin."}
如果我运行这个,我会得到“你不是服务器管理员。”

答复:

   { 
      "admins": 
         { "names":["testAdmin"],
           "roles":[]
         },
      "readers":
         { "names":["testUser"],
           "roles":[]
         }
    }
{"error":"unauthorized","reason":"You are not a server admin."}
我尝试过将用户切换到读卡器,我也尝试过使用我创建的另一个用户,该用户当前被列为读卡器,我不断遇到相同的错误


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

您正在尝试代替。如果要创建没有预定义ID的文档,请使用request。

@Kxepal已经解决了此问题。所以,我要明确这就是正在发生的事情

你有一个
超级管理员
,用couchdb的术语来说,他是一个服务器管理员,可以做任何事情。他/她可以创建数据库、删除数据库、获取任何文档等

然后,您还有其他用户,他们拥有您分配给他们的权限。因此,当您创建
\u security
文档时,您所做的是告诉couchdb
dbadmin
是数据库的管理员,dbreader是数据库的
成员。这是futon对管理员和成员的定义

数据库管理员可以更新设计文档并编辑管理员和成员列表

数据库成员可以访问数据库。如果未定义成员,则数据库为公共数据库

一旦您定义了管理员或成员,您的数据库就不再是公共数据库。只有具有足够权限的用户才能访问它们

根据@Kxepal指出的请求,您试图创建一个数据库。数据库管理员无法创建数据库。该权限属于服务器管理员,在您的情况下属于超级管理员。

使用

卷曲


这可能就是最初问题的解决办法。

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


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

请确定:您是否知道开始使用CouchDB时不需要任何用户创建?您可以指定您打算做什么吗?谁能做什么?1.5版的官方文档是。对于您的问题(,)有几个部分可能很有趣。我认为会话超时可以通过