我在我的应用程序上使用MangoDb,当我尝试使用服务连接器直接访问数据库时,我可以连接,但随后我得到:
Error: error: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { *any command*}",
"code" : 13
}在任何查询或命令上都是如此。
有没有办法更改授权或访问我的MangoDb数据
附言:我的MangoDb是按照教程中的https://docs.developer.swisscom.com/tutorial-python/bind-service.html绑定的
发布于 2017-07-26 18:55:05
看起来您正在尝试对您的用户未被授权的admin数据库执行命令。您可以在凭证(key mongodb.credentials.database)中找到授权给您的用户的正确数据库,但理想情况下,您可以使用提供的URI (mongodb.credentials.uri)进行连接,它会自动将您连接到正确的数据库。
您可以查看您所链接的教程中的Python示例,以了解如何正确访问和使用这些凭据。
发布于 2017-07-27 15:12:16
answer from Sandro Mathys是正确的和有帮助的,我想澄清/简化一点。
service broker授予您dbOwner角色,并为您创建一个具有随机名称的数据库。这是在cf create-service过程中完成的。
数据库所有者可以对数据库执行任何管理操作。此角色结合了readWrite、dbAdmin和userAdmin角色授予的权限。
您对admin数据库没有权限。admin数据库仅供瑞士电信运营商使用。请使用参数--authenticationDatabase和来自cf env的随机数据库名称登录mongo shell。
指定在其中创建用户的数据库。请参阅身份验证数据库。
如果您没有为--authenticationDatabase指定值,mongo将使用连接字符串中指定的数据库。
https://stackoverflow.com/questions/45308011
复制相似问题