无权查询 orion.*

not authorized for query on orion.*

我对 orion db 有一些问题,它输出如下错误:

time=2015-01-13T14:42:19.272UTC | lvl=ERROR |
trans=1421070784-640-00000009856 | function=processContextElement |
comp=Orion | msg=MongoCommonUpdate.cpp[1604]: Database Error (error
retrieving _id field
in doc: { $err: "not authorized for query on orion.entities", code: 16550 })

我也可以通过这种方式产生类似的错误:

> use orion
switched to db orion
> db.csubs.find()
error: { "$err" : "not authorized for query on orion.csubs", "code" : 16550
}

上下文代理配置似乎没有任何身份验证 猎户座数据库。 /etc/sysconfig/contextBroker 已将用户名和密码散列到数据库:

#BROKER_DATABASE_USER=orion
#BROKER_DATABASE_PASSWORD=orion

未哈希的配置不适用于数据库。

您的 MongoDB 实例 运行 似乎启用了身份验证。因此,有两种解决方案:

  1. 运行 MongoDB 未经身份验证,例如没有 --auth 选项。请检查 MongoDB 有关此的官方文档。如果您可以通过其他方式(例如 fiwarelling)保护 MongoDB 访问,或者如果安全性在您的环境中根本不相关(例如测试环境),这可能是更简单的选择。
  2. 将 BROKER_DATABASE_USER 和 BROKER_DATABASE_PASSWORD 参数设置为具有 Orion DB 访问权限的参数(如果您使用默认设置 运行 CB,通常是名为 orion 的数据库).我想正确的 user/password 应该由您的数据库管理员提供。

感谢您的建议。 mongo 确实配置了 auth。我在 mongodb.conf 中散列了 auth=true 选项,现在它可以正常工作了。 谢谢