MongoDB:管理员无权执行命令

Dra*_*orn 5 ubuntu admin mongodb

当我使用命令时,我的 mongo shell 给了我这个错误show dbs

没有管理员权限执行命令

我尝试使用创建用户

db.createUser(
  {
    user: "siteUserAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
Run Code Online (Sandbox Code Playgroud)

https://docs.mongodb.com/v2.6/tutorial/add-user-administrator/

但它仍然给我同样的错误:

无法添加用户:管理员无权执行命令。

我使用的是Ubuntu 16.04mongoDB版本是3.4.9

cha*_*tej 3

我认为你可以使用 Ubuntu 的 root 角色。尝试以下查询。

use admin
db.createUser(
  {
    user: "admin",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  }
);
exit; 
Run Code Online (Sandbox Code Playgroud)

您也可以授予用户读写权限

use admin

 db.grantRolesToUser("admin",["readWrite"])
Run Code Online (Sandbox Code Playgroud)

编辑

由于上述方法不起作用,请尝试使用以下身份验证启动实例

  1. 停止 mongod 实例
  2. 启动实例$ mongod --auth
  3. 现在启动 mongo shell 并创建用户
   use admin
   db.createUser(
            {
             user: "admin",
             pwd: "password",
             roles: [ { role: "root", db: "admin" } ]
            }
                );
           exit;
Run Code Online (Sandbox Code Playgroud)
  1. 现在给予许可

     db.auth("admin", "password")
     db.grantRolesToUser("password", [ { role: "readWrite", db: "admin" } ])
    
    Run Code Online (Sandbox Code Playgroud)
  2. 现在检查show users

  • 不,没用。我从“mongod --auth”开始。仍然给我同样的错误。我必须删除所有内容并重新安装所有内容,现在它可以工作了 (2认同)