MongoDB-未经沙箱计划授权的管理员用户

时间:2018-11-11 12:12:55

标签: mongodb mlab

我正在尝试将沙箱数据库服务器版本升级到4.x.x。现在是3.6.6

为此,我需要创建一个管理员用户。

所以我连接到mongo shell,然后运行以下命令:

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

但是,出现以下错误:

Error: couldn't add user: not authorized on admin to execute command 

几个小时以来,我一直在努力解决这个问题。其他与stackoverflow相关的问题无法解决。

我想知道是否可以在非专用数据库服务器上这样做。如果没有,如何升级服务器版本?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果这是您尝试在数据库中进行连接的第一个用户,则需要使用“ Localhost Exception”:

  

localhost异常允许您启用访问控制,然后   在系统中创建第一个用户。除了本地主机例外,   启用访问控制后,连接到localhost接口   并在管理数据库中创建第一个用户。第一个用户必须   有权创建其他用户,例如具有   userAdmin或userAdminAnyDatabase角色

创建用户如下:

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

db.auth("userAdminAnyDB", "password")

使用userAdminAnyDB凭据成功登录后,请为Db部署创建必需项。

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