在couchdb 3中创建没有管理员密码的新用户

在couchdb 3中创建没有管理员密码的新用户,couchdb,fauxton,couchdb-3.x,Couchdb,Fauxton,Couchdb 3.x,我刚刚下载并安装了CouchDB v3 在第一次启动时,它提示我设置一个管理员密码,我就是这么做的 对于我正在构建的web应用程序,我希望使用CouchDB用户身份验证功能,因此我使用Fauxton UI创建了一个新的用户数据库 在创建了_users数据库之后,我调用了REST API来插入一个新用户。这是取自以下示例代码: 而不是预期的反应 {"ok":true,"id":"org.couchdb.user:jan","rev":..."} 我要走了 {"error":"unauthoriz

我刚刚下载并安装了CouchDB v3

在第一次启动时,它提示我设置一个管理员密码,我就是这么做的

对于我正在构建的web应用程序,我希望使用CouchDB用户身份验证功能,因此我使用Fauxton UI创建了一个新的用户数据库

在创建了_users数据库之后,我调用了REST API来插入一个新用户。这是取自以下示例代码:

而不是预期的反应

{"ok":true,"id":"org.couchdb.user:jan","rev":..."}
我要走了

{"error":"unauthorized","reason":"You are not authorized to access this db."}
将管理员凭据添加到API调用时,它会按预期工作:

$ curl -X PUT http://admin:____@localhost:5984/_users/org.couchdb.user:jan \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'

{"ok":true,"id":"org.couchdb.user:jan","rev":"..."}
我的问题:


我是否可以设置任何设置或权限,使请求在不添加管理员凭据的情况下工作?在v2.x中,这一切都很好,你错过了好的老管理员聚会的乐趣,多年来它一直是CouchDB的默认设置,这意味着它的安装没有任何安全性,因为每个人实际上都是管理员

从公路到CouchDB 3.0:安全性[1]

轻松入门的一个方面是1.x时代的选择 使CouchDB易于使用:管理方。管理方的意思是, 默认情况下,对CouchDB的任何请求都是在上下文中完成的 管理员用户的权限,即允许您执行任何操作

3.0通过关闭管理团队改变了这一切-真是一堆无聊的东西

我怀疑还有更复杂的解决方案,但对于那些想要快速参与[2]的人来说,对etc/local.ini和对_用户的任何权限进行细微的更改都会令人满意

关键是配置属性require\u valid\u user[3]

在etc/local.ini中,修改chttpd和coach_httpd_auth部分

除非为_users数据库定义了成员和/或角色,否则就只需要这些了。如果有,必须使用Fauxton轻松删除

清理成员/角色并更改etc/local.ini后,重新启动CouchDB,您应该能够创建没有问题的用户。开派对!