Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CouchDB,仅限管理员创建用户_Couchdb_Pouchdb - Fatal编程技术网

CouchDB,仅限管理员创建用户

CouchDB,仅限管理员创建用户,couchdb,pouchdb,Couchdb,Pouchdb,我正在开发一个CouchDB后端,它将作为使用PockDB的React应用程序的中心存储。阅读安全部分的文档:,不需要管理员帐户或任何类型的用户帐户来创建用户记录。现在,他们将无法创建任何文档,因为我禁用了管理方。但我也不希望有一个开放的API端点只允许任何人编写数据。我有没有办法限制这一点 我试着看看是否可以设置这样的安全文档: curl -X PUT http://admin:admin@localhost:5984/_users/_security -d '{"admins":{"name

我正在开发一个CouchDB后端,它将作为使用PockDB的React应用程序的中心存储。阅读安全部分的文档:,不需要管理员帐户或任何类型的用户帐户来创建用户记录。现在,他们将无法创建任何文档,因为我禁用了管理方。但我也不希望有一个开放的API端点只允许任何人编写数据。我有没有办法限制这一点

我试着看看是否可以设置这样的安全文档:

curl -X PUT http://admin:admin@localhost:5984/_users/_security -d '{"admins":{"names":[],"roles":[]},"members":{"names":[],"roles":[]}}'
但我仍然能够添加用户:

curl -X PUT http://localhost:5984/_users/org.couchdb.user:abc1 -d '{"name":"abc1", "password":"abc1", "roles":[], "type":"user"}'

是否有一些内容我可以更改,以便在没有管理员凭据的情况下无法向
couchdb.users
命名空间执行put请求?

您在安全文档中没有设置管理员或用户,并且没有成员的数据库允许任何用户编写常规文档,这与默认行为相同


尝试将服务器的管理员设置为
\u users
数据库管理员,即将安全文档更改为
-d'{“admins”:{“names”:[“admin”],“roles”:[]},“members”:{“names”:[],“roles”:[]}
,或者更好地创建一个管理员角色,并将其分配给单独的CouchDB用户,以实现更精细的控制。

从我的头顶开始,我想你至少需要一个名字或角色才能真正成为管理员。我尝试了一下,不幸的是,它仍然允许我编写没有管理员证书的用户。谢谢你的建议。正如塞巴斯蒂安在我的问题评论中所建议的那样,我已经尝试过了,但是运气不好。我使用的是couchdb 2.0.0,以防万一这可能会有所不同。实际上,在1.x和2.x之间可能会有很多变化。我怀疑它现在希望成员部分中至少有一个用户或角色限制匿名访问。尝试将安全对象设置为
{“admins”:{“roles”:[“_admin”]},“members”:{“roles”:[“_admin”]}
,当节“[couchdb]”中的配置参数“default_security”设置为“admin_only”时,这是新数据库的默认安全对象。