在MongoDB 3.2中创建第一个用户。

时间:2016-02-19 14:03:53

标签: mongodb permissions admin

我新安装了MongoDB 3.2并试图创建第一个抛出以下错误的用户。

“错误:无法添加用户:管理员未授权执行命令”

我关注了mongoDB 3.2文档, https://docs.mongodb.org/manual/tutorial/enable-authentication/

要添加管理员,我尝试了以下代码,导致上述错误

创建用户管理员。 添加具有userAdminAnyDatabase角色的用户。例如,以下内容在admin数据库中创建用户myUserAdmin:

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "MY_PASSWORD",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

我经历了其他stackoverflow的答案,但没有运气,

MongoDB - admin user not authorized

Update role user: not authorized on admin to execute command

我的完整错误,

 E QUERY    [thread1] Error: couldn't add user: not authorized on admin to execute command { createUser: "myUserAdmin
", pwd: "xxx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0
} } :
_getErrorWithCode@src/mongo/shell/utils.js:23:13
DB.prototype.createUser@src/mongo/shell/db.js:1225:11
@(shell):1:1

谢谢

1 个答案:

答案 0 :(得分:5)

如果您重复使用现有的database directory /data/db,之前可能已经设置了用户/身份验证。

你可以:

  • 使用--dbpath指向新数据目录,从新数据库目录开始。
  • 运行mongod而不--auth,然后

    use admin;
    db.getUsers(); // to see whether there's already an existing user. 
    

    使用db.removeUser()删除现有用户。