对不起,这是/不是问题,但我还没有find可以澄清的文件,或者我一定在这里错过了 。 是标准的行为,你可以简单地创build一个新的用户条目到couchDB(不作为pipe理员用户)在以下方式:
curl -X PUT http://localhost:5984/_users/org.couchdb.user:jan \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'
我只是试了一下 它确实工作并创build一个新的用户。 我不确定这是否有意(服务器pipe理员存在,所以它不是pipe理员)。 可以限制/configuration此行为,以防止不必要的大量注册?
编辑:对不起,这不是回答这个问题。 我没有仔细阅读。
标准的行为是“行政党”是什么意思,如果没有创build初始pipe理员(见下文),每个人都是pipe理员。 所以要回答这个问题 – 是的。
CouchDB提供了基本的身份validation机制。
文档位最重要的是: http : //docs.couchdb.org/en/latest/intro/security.html?highlight=security#authentication-database 。 用户存储在authentication数据库中,pipe理员存储在local.ini文件中。 要添加一个pipe理员:
couchdb -c [admins]部分取消注释line admin并以纯文本格式添encryption码 您可以确定也将adminangular色添加到用户数据库,但即使名称相同,也只是另一个用户。
请参阅http://docs.couchdb.org/en/latest/api/database/security.html
我在这里find了我的问题的答案:
另外,_users数据库现在被视为不同于其他数据库:
An anonymous user can only create a new document.
所以, 是的 ,匿名(未经身份validation的)用户可以在CouchDB中创build一个新用户。
为了configuration/限制这个行为,你可以修改_design/_authdevise文档中的validate_doc_update函数,它已经处理了某些用户创build的限制(参见示例 )。 检查!is_server_or_database_admin(userCtx, secObj)在那里已经存在。 要只允许pipe理员添加新用户,您可以:
throw({forbidden : 'Users can only be created by server or db admins in this specific CouchDB installation'})
在声明的开头,禁止任何进一步的行动,当没有authentication为数据库pipe理员。
validate_doc_update的部分如下所示:
//[… existing code …] !is_server_or_database_admin(userCtx, secObj) { throw({forbidden : 'Users can only be created by server or db admins in this specific CouchDB installation'}) //[… existing code …] }