我正在使用 ArangoDB 2.6 的 HTTP API(但我相信我也遇到了我将在以前的版本中描述的问题)。
- 我使用用户/密码(root 或现有用户)对 ArangoDB 进行身份验证。
- 我使用相同的用户/密码创建了一个新数据库。
- 当我尝试使用相同的用户/密码访问新创建的数据库时,我收到 401(未授权)。
当我尝试使用 Web 仪表板时,我遇到了类似的问题,当我尝试访问数据库页面时,我被踢回登录屏幕并且无法再登录。难道我做错了什么?这可能是一个错误吗? 提前致谢。
最佳答案
下面的内容似乎在 2.6 中工作,并打开了身份验证。
它使用带有 curl
的 HTTP REST API:
首先,我们需要验证我们是否真的可以使用特权用户连接到 _system 数据库。我们需要这个来创建一个新的数据库:
curl --dump - --basic --user "root:rootpasswd" -X GET \
http://127.0.0.1:8529/_db/_system/_api/version && echo
这应该返回一个 HTTP 200。 现在我们可以连接到 _system 数据库,我们可以发出调用来创建一个名为“testdb”的新数据库。我们将创建一个名为“testuser”的用户和密码“test1234”来连接它:
curl --dump - --basic --user "root:rootpasswd" -X POST \
http://127.0.0.1:8529/_db/_system/_api/database \
--data '{"name":"testdb","users":[{"username":"testuser","passwd":"test1234"}]}' && echo
这应该返回 HTTP 201。
现在我们终于可以检查我们是否真的可以用新用户连接到刚刚创建的数据库:
curl --dump - --basic --user "testuser:test1234" -X GET \
http://127.0.0.1:8529/_db/testdb/_api/version && echo
这也应该返回 HTTP 200,这意味着您可以使用新用户连接到刚创建的数据库。
请检查这是否也适用于您。
关于ArangoDB 身份验证和数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31359504/