【问题标题】:ArangoDB with Python - 401 not authorized to execute this request带有 Python 的 ArangoDB - 401 未授权执行此请求
【发布时间】:2018-10-25 09:29:21
【问题描述】:

我目前正在尝试通过 Python 自动创建和填充一个集合。如前所述,我选择的数据库是 Arango。我遇到的问题是出现错误:

[HTTP 401][ERR 11] 无权执行此请求

我已关闭防火墙并尝试重新安装 Arango,以检查我是否在设置管理员配置文件时搞砸了,但一切似乎都很好。到目前为止,我发现的唯一类似问题是this one,但它仍然与我的问题无关。

关于构建器,我是这样设置的:

config={
   "database": 'exampleDB',
   "host":'localhost',
   "protocol":'http',
   "port":'8529',
   "username":'someone',
   "password":'xxxx'
}

在设置权限配置时我还缺少什么吗?或者问题可能出在其他地方。

我没有发布我的完整代码,因为它是公司拥有的软件。

【问题讨论】:

  • 您需要分享更多详细信息。什么样的请求失败?用户是否可以访问他想要查询的数据库/集合?
  • @JanChristophUhde 用户确实有权访问数据库。我正在为此使用我的管理员帐户。集合不存在,我正在尝试从 python 自动创建一个集合
  • 您能否创建一个最小的工作示例来重现该问题?您使用的是什么版本的 ArangoDB?你使用 pyarango 还是 arango-python?
  • 我正在使用 pyarango 和 arango-python。数据库的版本是 3.3.17。我即将创建一个类似的代码 sn-p。我会在 1-2 小时内修改问题。

标签: python database arangodb


【解决方案1】:

如果是pyArango,您需要在实例化 Connection 类时提供凭据:

from pyArango.connection import *
conn = Connection(username=config['username'], password=config['password'])

文档:https://bioinfo.iric.ca/~daoudat/pyArango/connection.html

如果是python-arango,您首先需要一个客户端对象,然后调用db() 方法并提供数据库名称和凭据:

from arango import ArangoClient
client = ArangoClient(protocol='http', host='localhost', port=8529)
db = client.db('_system', username=config['username'], password=config['password'])

文档:https://python-driver-for-arangodb.readthedocs.io/en/master/overview.html

arango-python 的原始存储库五年后被废弃,它不支持任何 2.x 或 3.x 服务器版本,我找不到任何用于身份验证的内容(在 GitHub 上搜索“auth”没有结果, “密码”、“用户”、“信用”)。 docs site 更加陈旧。

ArangoPy 项目似乎也死了,根据自述文件,它支持 ArangoDB 2.2 到 2.6。没有给出认证的例子。 Client constructor 确实带有一个名为 auth 的参数,但用法仍不清楚(<username>:<password>?)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多