【问题标题】:Configure CouchDB as read-only for non-admins将 CouchDB 配置为非管理员只读
【发布时间】:2016-10-27 07:55:53
【问题描述】:

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

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

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

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

看看the docs about security,有一些方法可以限制注册会员访问任何类型的数据库,但我想继续让未经身份验证的用户拥有只读访问权限。根据this page

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

这样也会限制读取访问。

有什么方法可以微调 CouchDB 上的权限设置吗?

【问题讨论】:

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


    【解决方案1】:

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

    然后,对于每个数据库,将“Admin”权限限制为“ADMIN”角色。

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

    【讨论】:

    • 新注册的用户还不能创建文档吗?​​
    • 你是对的,这不能解决你的问题。看看this
    • 验证函数看起来像我正在寻找的答案。谢谢!
    【解决方案2】:

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

    但是:

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

    但要解决这些

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

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

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 1970-01-01
      • 2015-07-27
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多