【发布时间】:2017-06-19 00:13:16
【问题描述】:
我在开发人员环境中安装了 CouchDB,并将端口公开。我还添加了管理员方。所以如果我去http://ip:5984/_utils 它会要求用户名和密码,这是预期的。 但是,如果我使用我的数据库名称(例如http://ip:5984/{dbname})发出直接请求,那么它会返回 json 值,并且我也可以通过相同的 get 请求访问这些数据。我在这里做错什么了吗?
【问题讨论】:
标签: couchdb
我在开发人员环境中安装了 CouchDB,并将端口公开。我还添加了管理员方。所以如果我去http://ip:5984/_utils 它会要求用户名和密码,这是预期的。 但是,如果我使用我的数据库名称(例如http://ip:5984/{dbname})发出直接请求,那么它会返回 json 值,并且我也可以通过相同的 get 请求访问这些数据。我在这里做错什么了吗?
【问题讨论】:
标签: couchdb
听起来你需要设置数据库的security document 来控制哪些用户有什么访问权限。请务必阅读security 上的整个文档,以便您全面了解 CouchDB 的安全模型以及如何配置它。
【讨论】:
如果我错了,请纠正我,但您的意思可能是您删除了管理员?
如果是这样,删除管理员组只会禁用匿名用户进行管理员操作。他们仍然可以访问数据库。
如果您只想将访问权限限制为经过身份验证的用户,则必须设置此配置值:
[couch_httpd_auth]
require_valid_user = true
否则,您可以设置每个数据库的权限(请参阅Database Security)
【讨论】:
require_valid_user 在几乎所有情况下都是一个坏主意。