如何解决“mongodb not authorized on yunchong to execute command”

1. 问题描述

首先,我们来解释一下问题的背景。当您在使用 MongoDB 数据库时,可能会遇到以下错误信息:“mongodb not authorized on yunchong to execute command”。这个错误通常发生在您尝试执行一个需要授权的操作时,但是您没有相应的权限。

2. 解决步骤

为了解决这个问题,您需要按照以下步骤进行操作。下面的表格将展示每个步骤及其相应的操作。

gantt
    title 解决“mongodb not authorized on yunchong to execute command”问题的流程

    section 解决步骤
    创建用户: done, 2022-07-01, 1d
    授权用户: done, after 创建用户, 1d
    重启数据库: done, after 授权用户, 1d

2.1 创建用户

第一步是创建一个具有所需权限的用户。您可以使用以下代码在 MongoDB 中创建用户:

// 创建用户
use admin
db.createUser(
  {
    user: "<username>",
    pwd: "<password>",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

代码解释:

  • use admin:使用 admin 数据库来创建用户。
  • db.createUser():创建用户的方法。
  • user:您要创建的用户名。
  • pwd:您要为用户设置的密码。
  • roles:用户的角色和数据库。

2.2 授权用户

第二步是为刚创建的用户授予适当的权限。您可以使用以下代码在 MongoDB 中为用户授权:

// 授权用户
use yunchong
db.grantRolesToUser("<username>", [ { role: "<role>", db: "<database>" } ])

代码解释:

  • use yunchong:使用 yunchong 数据库来授权用户。
  • db.grantRolesToUser():授权用户的方法。
  • username:您刚创建的用户名。
  • role:您要授予的角色,例如 readWritedbAdmin
  • database:您要授权的数据库。

2.3 重启数据库

最后一步是重启 MongoDB 数据库,以使更改生效。您可以使用以下代码来重启数据库:

// 重启数据库
sudo service mongod restart

代码解释:

  • sudo service mongod restart:重启 MongoDB 服务。

3. 总结

通过按照上述步骤,您应该能够成功解决“mongodb not authorized on yunchong to execute command”的问题。首先,您需要创建一个具有适当权限的用户,然后为该用户授权,最后重启数据库以使更改生效。

希望本文对您有所帮助!如果您有任何其他问题,请随时提问。