MongoDB地图集错误:uncaughtException :(未经授权)未经管理员授权执行命令

时间:2020-11-01 09:18:33

标签: mongodb heroku

我是mongodb的新手,请原谅我的语言。 我已经将应用程序的后端部署到了heroku,并尝试将其与Mongodb连接。 我遵循的步骤如下。

  1. 我在mongodb.com上创建了一个项目,添加了一个用户(角色为 atlasAdmin @ admin ),添加了IP。

  2. 我将其连接到MongoDB Compass,并使用指南针添加了所需的数据

  3. 我使用了connect your application,并在编辑用户名,密码和dbname后将其保存在heroku config环境变量的字符串下面。

mongodb+srv://<username>:<password>@vidly.5pn3u.azure.mongodb.net/<dbname>?retryWrites=true&w=majority

但是它给出错误为'MongoError: (Unauthorized) not authorized on admin to execute command

我尝试了以下选项来修复错误:

  1. 使用mongo shell我尝试创建用户。一世 使用字符串mongo "mongodb+srv://vidly.5pn3u.azure.mongodb.net/<dbname>" --username <username>连接到mongo,然后
use admin
db.createUser(
  {
    user: 'admin',
    pwd: 'password',
    roles: [ { role: 'root', db: 'admin' } ]
  }
);
exit;

但是它给出了错误:uncaught exception: Error: couldn't add user: (Unauthorized) not authorized on admin to execute command

  1. cloud.mongodb.com上,我将mongodb服务器上的角色更改为(dbAdminAnyDatabase @ admin,backup @ admin,readWriteAnyDatabase @ admin,clusterMonitor @ admin) 但它给出了相同的错误。

请告知如何解决此错误?

编辑:

我能够在外壳上使用connect with the mongo shell使用mongo show dbs访问数据库,但无法创建用户,并且connect using mongodb compass可以在指南针中编辑数据库。 但是,当我尝试使用connect your application选项时,会出现此错误。

添加的用户具有这些访问权限(dbAdminAnyDatabase @ admin,backup @ admin,readWriteAnyDatabase @ admin,clusterMonitor @ admin),即使该用户无法使用。

1 个答案:

答案 0 :(得分:0)

您需要安装最新版本的猫鼬。 例如,您可以使用“纱线添加猫鼬”来安装猫鼬。