MongoDB:管理员未授权执行命令

时间:2017-10-25 12:35:46

标签: mongodb ubuntu admin

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

  

未授权管理员执行命令

我尝试使用

创建用户
db.createUser(
  {
    user: "siteUserAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

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

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

  

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

我使用 Ubuntu 16.04 mongoDB 版本 3.4.9

1 个答案:

答案 0 :(得分:2)

我认为您可以将该角色用作Ubuntu的root用户。请尝试以下查询。

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

您也可以向用户提供读写权限

use admin

 db.grantRolesToUser("admin",["readWrite"])

修改

由于上述方法无效,请尝试使用auth启动实例,如下所示

  1. 停止mongod实例
  2. 使用$ mongod --auth
  3. 启动实例
  4. 现在启动mongo shell并创建用户
  5.    use admin
       db.createUser(
                {
                 user: "admin",
                 pwd: "password",
                 roles: [ { role: "root", db: "admin" } ]
                }
                    );
               exit;
    
    1. 现在授予权限

       db.auth("admin", "password")
       db.grantRolesToUser("password", [ { role: "readWrite", db: "admin" } ])
      
    2. 现在查看show users