MongoDB:未被授权在管理系统上执行命令

5

当我使用show dbs命令时,我的mongo shell会给我返回以下错误信息:

未被授权在admin上执行该命令。

我尝试创建一个用户,使用的命令是:

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

根据 https://docs.mongodb.com/v2.6/tutorial/add-user-administrator/ 上的说明操作,但仍然出现了相同的错误:
“无法添加用户:未被授权在管理员上执行命令。”
我正在使用Ubuntu 16.04,mongoDB版本为3.4.9。
1个回答

3

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

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

您可以为用户授予读写权限。
use admin

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

编辑

由于上述方法无效,请尝试以下步骤来启动该实例:

  1. 停止mongod实例
  2. 使用$ mongod --auth命令启动该实例
  3. 现在启动mongo shell并创建用户
   use admin
   db.createUser(
            {
             user: "admin",
             pwd: "password",
             roles: [ { role: "root", db: "admin" } ]
            }
                );
           exit;
  1. Now give permission

     db.auth("admin", "password")
     db.grantRolesToUser("password", [ { role: "readWrite", db: "admin" } ])
    
  2. Now check show users


1
{btsdaf} - DragonBorn
相同的错误:错误:未被授权在admin上执行命令{grantRolesToUser:"admin",roles:["readWrite"],writeConcern:{w:"majority",wtimeout:600000.0}}: _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype.grantRolesToUser@src/mongo/shell/db.js:1493:19 @(shell):1:1 - DragonBorn
使用以下命令运行:mongo --port 27017 -u "admin" -p "password" --authenticationDatabase "admin" - charan tej
认证失败。 - DragonBorn
2
不行,没有起作用。我使用了 mongod --auth 来启动它。仍然给了我相同的错误。我不得不删除所有内容并重新安装一切,现在它可以工作了。 - DragonBorn
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接