Encontrei a resposta para minha pergunta aqui :
In addition, the _users database is now treated different from other databases:
An anonymous user can only create a new document.
Então, sim , um usuário anônimo (não autenticado) pode criar um novo usuário em um CouchDB.
Para configurar / limitar esse comportamento, você pode modificar a função validate_doc_update
dentro do documento _design/_auth
design, que já lida com certas limitações de criação de usuários (consulte exemplo oficial ). O cheque !is_server_or_database_admin(userCtx, secObj)
já existe lá. Para permitir que apenas administradores adicionem novos usuários, você poderia:
throw({forbidden : 'Users can only be created by server or db admins in this specific CouchDB installation'})
No início dessa declaração, para proibir qualquer ação adicional, quando não autenticado como administrador do banco de dados.
A parte em validate_doc_update
se parece com:
//[… existing code …]
if(!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 …]
}
Consulte o exemplo (role para a parte inferior) na documentação oficial para mais detalhes.