MongoDB:无法添加用户-未经授权(CloudFoundry)

时间:2018-09-05 20:39:43

标签: mongodb cloudfoundry swisscomdev

我有一个MongoDB(服务计划:小型),我想创建一个额外的用户,但似乎我没有必要的特权。

db.createUser({ user: "whateverusername" , pwd: "whateverpassword", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
  

无法执行脚本。

     

错误:无法添加用户:未经XXXXXXX授权执行   命令{createUser:“ whateverusername”,pwd:“ xxx”,角色:[   “ userAdminAnyDatabase”,“ dbAdminAnyDatabase”,“ readWriteAnyDatabase”   ],digestPassword:false,writeConcern:{w:“多数”,wtimeout:   600000.0}}:   _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype.createUser@src/mongo/shell/db.js:1290:15 @(shell):1:1

我无法列出用户:

db.system.users.find();
  

错误:错误:{“ ok”:0,“ errmsg”:“未在XXXXXXX上授权   执行命令{查找:\“ system.users \”,过滤器:{}}“,”代码“:13     “ codeName”:“未经授权”}

此限制是故意的吗?有没有办法获得readWriteAnyDatabase角色?难道我做错了什么?

非常感谢您能提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

您需要通过CloudFoundry添加用户。将服务绑定到应用程序将创建要由该应用程序使用的用户,或者创建用于所有其他目的的服务密钥(主要用于人类需要与数据库交互的情况)。

以下是有关将服务绑定到应用程序的文档:https://docs.developer.swisscom.com/devguide/services/application-binding.html

相关教程:https://docs.developer.swisscom.com/tutorial-go/bind-service.html

以下是创建服务密钥的方法:https://docs.developer.swisscom.com/devguide/services/service-keys.html