用户无法在 CouchDB 的 _users 中访问自己的文档
User cannot access own document in _users in CouchDB
我在 Windows 上使用 CouchDB 3.1.0 时遇到问题。我已经安装了它,在安装过程中创建了一个管理员用户(admin:admin
),然后按照文档所述创建了一个用户:
$ curl -X PUT http://admin:admin@localhost:5984/_users/org.couchdb.user:jan \
> -H "Accept: application/json" \
> -H "Content-Type: application/json" \
> -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'
{"ok":true,"id":"org.couchdb.user:jan","rev":"1-fd5a90118f51fb895d594f2fdfa9b12f"}
很好。现在让我获取用户文档:
$ curl -X GET http://jan:apple@localhost:5984/_users/org.couchdb.user:jan
{"error":"forbidden","reason":"You are not allowed to access this db."}
我做错了什么?我错过了什么?
它确实在 CouchDB 2.3 中工作,当然。
谢谢。
很遗憾,CouchDB 3.x 的文档已过时。截至今天,安全文档中的 Authentication Database 部分指出:
Users may only access (GET /_users/org.couchdb.user:Jan
) or modify
(PUT /_users/org.couchdb.user:Jan
) documents that they own
但是,它没有声明默认情况下用户无权访问 _users
数据库中的 任何 文档。
为了允许访问,必须首先在设置中将users_db_security_editable
标志更改为true,然后清除_users
安全对象中的members -> roles
列表。默认情况下,此列表中包含 _admin
。或者,您可以向用户添加一个角色,然后将该角色添加到 members -> roles
。
请注意,这将允许用户读取 和 写入其用户文档的权限。
有open Github issue修改文档
其他来源:
我在 Windows 上使用 CouchDB 3.1.0 时遇到问题。我已经安装了它,在安装过程中创建了一个管理员用户(admin:admin
),然后按照文档所述创建了一个用户:
$ curl -X PUT http://admin:admin@localhost:5984/_users/org.couchdb.user:jan \
> -H "Accept: application/json" \
> -H "Content-Type: application/json" \
> -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'
{"ok":true,"id":"org.couchdb.user:jan","rev":"1-fd5a90118f51fb895d594f2fdfa9b12f"}
很好。现在让我获取用户文档:
$ curl -X GET http://jan:apple@localhost:5984/_users/org.couchdb.user:jan
{"error":"forbidden","reason":"You are not allowed to access this db."}
我做错了什么?我错过了什么?
它确实在 CouchDB 2.3 中工作,当然。
谢谢。
很遗憾,CouchDB 3.x 的文档已过时。截至今天,安全文档中的 Authentication Database 部分指出:
Users may only access (
GET /_users/org.couchdb.user:Jan
) or modify (PUT /_users/org.couchdb.user:Jan
) documents that they own
但是,它没有声明默认情况下用户无权访问 _users
数据库中的 任何 文档。
为了允许访问,必须首先在设置中将users_db_security_editable
标志更改为true,然后清除_users
安全对象中的members -> roles
列表。默认情况下,此列表中包含 _admin
。或者,您可以向用户添加一个角色,然后将该角色添加到 members -> roles
。
请注意,这将允许用户读取 和 写入其用户文档的权限。
有open Github issue修改文档
其他来源: