You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为CouchDB特定数据库配置管理员及权限管控

CouchDB权限方案实现指南

完全可以实现你要的权限管理方案,具体配置步骤如下:

一、为单个数据库配置专属管理员

  1. 先在CouchDB的全局_users数据库中创建普通用户账号(比如db1_admin、db2_admin),不要将这些账号设为全局管理员。
  2. 进入目标数据库的_security文档(通过CouchDB的Fauxton界面或发送PUT请求到/[数据库名]/_security),配置admins字段:
{
  "admins": {
    "names": ["db1_admin"],
    "roles": []
  },
  "members": {
    "names": [],
    "roles": []
  }
}

该配置会让指定账号拥有对应数据库的完整管理权限(创建、删除文档,修改设计文档等),但无法操作其他数据库。

二、配置数据库的只读匿名/公共账号访问

  1. 同样编辑目标数据库的_security文档,根据需求配置readers字段:
  • 若允许匿名只读访问:
{
  "admins": {
    "names": ["db1_admin"],
    "roles": []
  },
  "members": {
    "names": [],
    "roles": []
  },
  "readers": {
    "names": [],
    "roles": ["_reader"]
  }
}

"_reader"是CouchDB内置角色,允许未登录的匿名用户执行_all_docs、_find等只读操作。

  • 若仅允许指定公共账号(如anonymous:anonymous)只读访问:
    先在_users数据库创建anonymous账号,再修改_security文档:
{
  "admins": {
    "names": ["db1_admin"],
    "roles": []
  },
  "members": {
    "names": [],
    "roles": []
  },
  "readers": {
    "names": ["anonymous"],
    "roles": []
  }
}

此配置仅允许anonymous账号访问该数据库的只读接口,匿名用户无法访问。

注意:配置前需确认CouchDB全局配置中require_valid_user的设置——若设为true,匿名访问会被完全禁止,此时只能用指定公共账号的方式;若设为false,才能开启匿名只读访问。

内容的提问来源于stack exchange,提问作者FangQ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 02:52:05