gpt4 book ai didi

authentication - CouchDB 复制 - 未经授权访问或创建数据库

转载 作者:行者123 更新时间:2023-12-02 17:46:31 24 4
gpt4 key购买 nike

我正在尝试设置 CouchDB 数据库复制,但两者都无法通过 Futon 和 cURL/CLI 工作:在这两种情况下都会出现以下错误消息:

{"error":"未经授权","re​​ason":"未经授权访问或创建数据库表1"}

curl -X POST http://127.0.0.1:5984/_replicate -d '{"source": "table1",
"user_ctx": {"name": "", "roles": ["admin"]}, "target":
"http://username:password@server:5984/table1", "create_target": false,
"continuous": true}' -H "Content-Type: application/json"

目标数据库通过用户名和密码进行保护,对于 HTTP 基本身份验证,我添加了凭据,如您所见。当我通过 Futon 创建复制文档时,出现同样的错误。

感谢您的帮助。

最佳答案

有点晚了,但我认为你需要它。

(CouchDb 1.6.1)

https://wiki.apache.org/couchdb/Replication

POST/_复制 HTTP/1.1

{ 
"source": {
"url":"https://example.net:5984/table1",
"headers":{
"Authorization":"Basic Ym9iQGV4YW1wbGUuY29tOnBhc3N3b3Jk"
}
},
"target":"target1",
"create_target": false,
"continuous": true
}

其中“Basic”一词后面的 base64 字符串是以下内容的输出:

  • echo -n '用户名:密码' | base64(https://example.net:5984 中数据库 table1 的用户名和密码。
  • 非常重要:当您发送请求时,您会将其发送到一个网址。目标还应该是要复制的数据库的名称 "target":"http://server:5984/table1"-->> table1
  • 用于发送此复制的请求 header 也应包含基本 token 。 (目标数据库的管理员用户名和密码或 super 管理员密码)

继续

curl -X POST http://127.0.0.1:5984/_replicate 
-d '{
"source": {
"url":"https://example.net:5984/table1",
"headers":{
"Authorization":"Basic Ym9iQGV4YW1wbGUuY29tOnBhc3N3b3Jk"
}
},
"target":"target1",
"create_target": false,
"continuous": true
}' -H "Authorization: Basic dXNlcm5hbWUyOnBhc3N3b3JkMg==;Content-Type: application/json"
  • dXNlcm5hbWUyOnBhc3N3b3JkMg==:用户名2:密码2(base64)
  • Ym9iQGV4YW1wbGUuY29tOnBhc3N3b3Jk:用户名:密码(base64)

  • username2:password2:数据库 target1 的管理员名称和密码(在 http://server:5984 上)

  • username:password:数据库 target1 的管理员名称和密码(在 127.0.0.1:5984 上)

关于authentication - CouchDB 复制 - 未经授权访问或创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com