将CouchDB配置为非管理员的只读

时间:2016-06-24 16:11:14

标签: database permissions couchdb database-permissions couchdb-futon

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

我希望Futon界面(我已曝光)对未经身份验证的用户来说是只读的。如果我理解正确,那么暴露的Futon界面的任何访问者都可以成为成员

  

允许阅读所有文档并创建和修改除设计文档之外的任何文档。

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

查看the docs about security,有一些方法可以限制对注册成员访问任何类型的数据库,但我希望让未经身份验证的用户具有只读访问权限。根据{{​​3}},

  

如果为数据库定义了任何成员名称或角色,则只允许具有匹配名称或角色的经过身份验证的用户从数据库中读取文档(或执行GET /{db}调用)。

因此也会限制读取权限。

有没有办法微调CouchDB上的权限设置?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

然而:

  • 我现在无法安全揭露蒲团
  • 作为管理员,我无法编辑数据库

但要解决这些问题

  • 我可能会为CouchDB编写一个只显示读取功能的新界面
  • 我可以通过SSH port forwarding进行管理。

如果nginx阻止不安全,如果有人能让我知道,我会很高兴。