将 CouchDB 配置为非管理员只读

Configure CouchDB as read-only for non-admins

我最近在我的服务器上设置了 CouchDB,但我 运行 缺乏有关更改权限的信息。我有一个管理员帐户,所以它不是 admin party,但限制仍然比我想要的要宽松。

我希望 Futon 界面(我已公开)对未经身份验证的用户是只读的。如果我理解正确的话,照原样,暴露的 Futon 界面的任何访问者都可以成为成员,谁是

allowed to read all documents and create and modify any document except for design documents.

我想取消这些功能,并配置 CouchDB,以便未经身份验证的用户既不能创建文档也不能成为用户。基本上,我希望 CouchDB 对除我之外的所有人都是只读的。

正在查看 the docs about security, there are ways to restrict access to the database of any kind to registered members, but I'd like to keep letting unauthenticated users have read-only access. According to this page

If there are any member names or roles defined for a database, then only authenticated users having a matching name or role are allowed to read documents from the database (or do a GET /{db} call).

这样也会限制读取权限。

是否有任何方法可以微调 CouchDB 上的权限设置?

要简单地解决您的问题,请为您的管理员分配一个角色(例如:"ADMIN")。

然后,foreach 数据库,将 "Admin" 权限限制为角色 "ADMIN"。

默认情况下,新注册的用户没有任何角色,因此他不能以管理员身份访问数据库。

我最终使用 nginx 配置来阻止所有非 GET 请求。这允许任何人读取数据库,但阻止写入数据库。

但是:

  • 我现在不能安全地晒蒲团
  • 作为管理员,我无法编辑数据库

但要解决这些

  • 我可能会为 CouchDB 编写一个只公开读取功能的新接口
  • 我可以通过 SSH port forwarding 进行管理。

如果 nginx 阻止不安全,如果有人可以告诉我,我会很高兴