很抱歉这个相当是/否的问题,但我还没有找到可以澄清它的文件,或者我一定在这里错过了它。您可以通过以下方式简单地为 couchDB 创建一个新用户条目(而不是管理员用户),这是标准行为:
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"}'
Run Code Online (Sandbox Code Playgroud)
我刚试过。它确实有效并创建了一个新用户。我不确定这是不是有意的(服务器管理员存在,所以它不是管理员方)。可以限制/配置此行为以防止不需要的大规模注册吗?
我在这里找到了我的问题的答案:
此外,_users 数据库现在的处理方式与其他数据库不同:
Run Code Online (Sandbox Code Playgroud)An anonymous user can only create a new document.
因此,是的,匿名(未经身份验证)用户可以在 CouchDB 中创建新用户。
要配置/限制此行为,您可以修改设计文档中的validate_doc_update
函数_design/_auth
,该函数已经处理了某些用户创建限制(参见官方示例)。!is_server_or_database_admin(userCtx, secObj)
那里已经存在支票。要仅允许管理员添加新用户,您可以:
An anonymous user can only create a new document.
Run Code Online (Sandbox Code Playgroud)
在该语句的开头,当未通过 db admin 身份验证时,禁止任何进一步的操作。
然后的部分validate_doc_update
看起来像:
throw({forbidden : 'Users can only be created by server or db admins in this specific CouchDB installation'})
Run Code Online (Sandbox Code Playgroud)
更多细节请参考官方文档中的示例(滚动到底部)。
归档时间: |
|
查看次数: |
4094 次 |
最近记录: |